次のデータセットがあります
data
date PX_LAST.USGG10YR Index PX_LAST.GSWISS10 Index
1 2012-12-31 1.7574 0.526
2 2013-01-31 1.9849 0.789
3 2013-02-28 1.8756 0.698
4 2013-03-29 1.8486 0.716
5 2013-04-30 1.6717 0.570
6 2013-05-31 2.1282 0.722
7 2013-06-28 2.4857 1.027
8 2013-07-31 2.5762 1.023
9 2013-08-30 2.7839 1.069
10 2013-09-30 2.6100 1.021
日付列のクラスは
> class(data[,1])
[1] "POSIXct" "POSIXt"
他の 2 つの列のクラスは
class(data[,2]) [1] "数値" class(data[,3]) [1] "数値"
私は今これをそのに変換しています
df2=xts(data,order.by=data$date)
結果は
structure(c("2012-12-31", "2013-01-31", "2013-02-28", "2013-03-29",
"2013-04-30", "2013-05-31", "2013-06-28", "2013-07-31", "2013-08-30",
"2013-09-30", "1.7574", "1.9849", "1.8756", "1.8486", "1.6717",
"2.1282", "2.4857", "2.5762", "2.7839", "2.61", "0.526", "0.789",
"0.698", "0.716", "0.57", "0.722", "1.027", "1.023", "1.069",
"1.021"), .Dim = c(10L, 3L), .Dimnames = list(NULL, c("date",
"PX_LAST.USGG10YR Index", "PX_LAST.GSWISS10 Index")), index = structure(c(1356912000,
1359590400, 1362009600, 1364515200, 1367280000, 1369958400, 1372377600,
1375228800, 1377820800, 1380499200), tzone = "UTC", tclass = c("POSIXct",
"POSIXt")), .indexCLASS = c("POSIXct", "POSIXt"), tclass = c("POSIXct",
"POSIXt"), .indexTZ = "UTC", tzone = "UTC", class = c("xts",
"zoo"))
結果を見ると、
> typeof(df2)
[1] "character"
明らかに、これを計算 (Return.calculate など) に使用することはできません。as.numeric(df2[,2]) で列 2 と列 3 を変換しようとすると、「文字」型のままになります。これを適切な xts に変換するコードを見つけるのを手伝ってもらえますか (つまり、列 2 と 3 は「double」型です)。つまり、df2 の構造はこの例のようになります
library(quantmod)
getSymbols('AAA',src='FRED')
class(AAA)
typeof(AAA)
> class(AAA)
[1] "xts" "zoo"
> typeof(AAA)
[1] "double
よろしくアンドレアス