0
我有一個數據幀:如何獲取日期範圍而不是數值?
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)
可能有人親切地指出我在正確的方向:) 問候
大答案斯文!你可能有一個想法,我可以如何將窗口矩陣子集包括在每個cov.matrix計算中使用的最後一個觀察值是每個月的最後一天的協方差矩陣?我想'grep'函數的東西...現在我在Excel中手動子集窗口矩陣...否則,如果你有一些關於如何分離Excel文件中的協方差矩陣的想法?因爲我無法設法將它們與一些空間分開..最好的問候 – user1665355