我已经搜索了一段3D数据格式,其中第一个dim是时间戳,如xts,第二个是矩阵。有一个足够接近R - store a matrix into a single dataframe cell的解决方案,但我希望拥有xts
对象而不是数据框。所以这就是:
myDF = data.frame(PnL=I(list()) )
myDF[[1, 'PnL']] <- matrix(rnorm(9), 3, 3,dimnames = list(NULL,c("x1","x2","x3")))
myDF[[2, 'PnL']] <- matrix(rnorm(9), 3, 3,dimnames = list(NULL,c("x1","x2","x3")))
myDF[[3, 'PnL']] <- matrix(rnorm(9), 3, 3,dimnames = list(NULL,c("x1","x2","x3")))
我可以通过myDF[[1]]
很好地访问元素,但我想要xts
样式,所以我转换:
timestamps = as.Date("2016-01-01") + 0:2
ts_array = xts(myDF, order.by = timestamps)
这里的问题开始了:
> ts_array
Error in coredata.xts(x) : currently unsupported data type
> ts_array[["2016-01-01"]]
NULL
zoo
稍微好一点,但我仍然无法通过时间戳访问:
> ts_array
PnL
2016-01-01 Numeric,9
2016-01-02 Numeric,9
2016-01-03 Numeric,9
> ts_array[["2016-01-01"]]
NULL
欣赏你的想法:)