リターン時系列の作成方法について(timeSeries Object)

ポートフォリオ最適化や時系列解析をRmetricsで実施するには、対象とするデータをリターン時系列をtimeSeriesクラスで持つ場合が多いのですが、往々にして手元にあるのはデータが指数時系列で、それがCSVExcelファイル、DBの形で転がっているというようなケースが多いと思います。
ここでは指数時系列データ(CSV)を加工してRmetricsに喰わせやすいtimeSeries型のリターン時系列データにまで持っていく方法について書きます。

library(timeSeries)
#http://finance.yahoo.com/q/hp?s=^GSPC
#からCSVでダウンロードしたデータがC:\Temp\table.csvとして保存してあるとして読み込み
data.df <- read.csv("C:/Temp/table.csv")
#以下関数 as.timeSeries を呼ぶまでの処理は上記URLのデータの場合は不要だが
#ExcelからCSVを作成する際には日付表示のデフォルトが-(ハイフン)ではなく/(スラッシュ)で切れていることが多いので以下の処理が必要
#内容の確認.日付が日付系のクラスではなくFactorになっているのがわかる
head(data.df)
str(data.df)
#1列目の日付項目を日付型に強制変換.列名をDATEへ.as.Date関数で日付型にすると変換がうまくいかない。
data.df <- cbind(Date=as.POSIXct(data.df[,1]),data.df[,2:ncol(data.df)])
#内容の再確認。きちんとPOSIXct型になっているのがわかる
head(data.df)
str(data.df)
#終値だけのデータにして、timeSeriesオブジェクトへ変換する
data.df <- data.df[,c("Date","Close")]
data.ts <- as.timeSeries(data.df)
#内容の確認。
head(data.ts)
str(data.ts)
#指数データをリターン系列にするためにはreturns関数を使用。デフォルトは対数リターン、simpleで通常の収益率(Y/X-1の形)
return.ts <- returns(data.ts,method="simple")
head(return.ts)