我有一个数据框:
head(df)
GMT
MSCI ACWI DJGlbl Russell 1000 Russell Dev S&P GSCI Industrial
1999-03-01 -0.0070000000 0.0020000000 -0.0010000000 -0.0150000000 -0.0100000000
1999-03-02 -0.0050352467 0.0009980040 -0.0070070070 -0.0020304569 0.0040404040
1999-03-03 -0.0020242915 0.0029910269 0.0000000000 -0.0061037640 0.0010060362
1999-03-04 0.0070993915 0.0029821074 0.0151209677 -0.0010235415 0.0050251256
1999-03-05 0.0241691843 0.0089197225 0.0218470705 0.0276639344 -0.0120000000
1999-03-08 0.0039331367 0.0039292731 0.0058309038 -0.0009970090 -0.0020242915
1999-03-09 0.0029382958 0.0000000000 -0.0028985507 0.0069860279 -0.0010141988
1999-03-10 0.0078125000 0.0088062622 0.0058139535 0.0118929633 0.0091370558
我确实使用下面的代码计算了滚动窗口协方差矩阵,其中名称(windowsList)实现的值例如1-60
是前 60 天 cov.matrix的值,2-61
当窗口移动一天时,下一个协方差矩阵的值是 $:
windowSize <- 60
windows <- embed(1:nrow(df), windowSize)
lapplyApproach <- function(df, windows) {
windowsList <- split(t(windows), rep(1:nrow(windows), each=ncol(windows)))
names(windowsList) <- unlist(lapply(windowsList, function(x)paste(range(x), sep="", collapse="-")))
return(lapply(windowsList, function(x)cov(df[x, ])))
}
我的问题是我想获取日期范围内的名称(windowsList)值而不是数字。例如,1-60
我想要的不是 $ ,而是 $ 1999-03-01 - 1999-05-21
。我试图制作一个日期矩阵,然后计算它们之间的范围,但没有成功。这个想法是名称($1999-03-01 - 1999-05-21
等)将作为工作表的名称传递给 Excel。例如:
library("XLConnect")
hb <- loadWorkbook("stuff.xlsx", create = TRUE)
createSheet(hb, names(windowsList))
writeWorksheet(hb,windowsList, names(windowsList),header=TRUE)
saveWorkbook(hb)
有人可以指出我正确的方向吗?:) 最好的问候