尽管使用了两个完整的列,其中每个元素都是数字,并且第2行到第570行没有数字丢失,但我发现当使用循环找到两者之间滚动的24周相关性时,不可能获得除NA之外的结果列。
rolling.correlation <- NULL
temp <- NULL
for(i in 2:547){
temp <- cor(training.set$return.SPY[i:i+23],training.set$return.TLT[i:i+23])
rolling.correlation <- c(rolling.correlation, temp)
} #end "for" loop
rolling.correlation
cor()命令适用于[2:25],[i:25]或[2:i],但当我说[i:i + 23]
我希望R计算行2到25,然后是3到26,......,547到570的相关性。结果应该是长度为546的向量,其具有每个相关的数值。相反,我得到了546个NA的向量。我怎样才能解决这个问题?谢谢你的帮助。
答案 0 :(得分:1)
看看你做什么时会发生什么
5:5+2
# [1] 7
请注意,:
的运算符优先级高于+
,这意味着当您真正需要5:5+2
时,(5:5)+2
与5:(5+2)
相同。使用
i:(i+23)