我使用自己的函数readVariableAsXTS(VariableName)从CSV文件导入多个股票价格。所有股票价格只有两列,日期和价格。现在我想创建(显然代码应尽可能快地执行)这些价格的索引版本。因此,NormalizedPrices [1]应为100,NormalizedPrices [2]应为100 *(1 + VariableReturns [1])或者为NormalizedPrices [i-1] *(1 + VariableReturns [i])。但是,这总是会产生此错误:
Error in NextMethod(.Generic) : replacement has length Zero
这是我对标准化价格的完整功能:
getNormalizedPrices<-function(VariableName, InitialValue=100){
VariableXTS<-readVariableAsXTS(VariableName)
VariableReturns<-periodReturn(VariableXTS,period="daily",type="arithmetic")
NormalizedPrices<-0*VariableReturns
NormalizedPrices[1]<-InitialValue
for(i in 2:nrow(VariableReturns)){
NormalizedPrices[i]<-NormalizedPrices[i-1]*(1+VariableReturns[i])
}
VariableXTS[,1]<-NormalizedPrices[,1]
return(VariableXTS)
}
我对xts和R很新。所以我的三个问题是: