我正在研究一个在Excel中呈现并转换为R的示例。本质上有一个时间序列用于创建模型(projectX):
# projectX :: float -> float
projectX <- function(previousX){ ... }
本质上,模型是一个函数(projectX),它接受一个输入(前一个x值)并返回一个预期值X.
我想从我的XTS中的最后一个值中获取种子,然后使用生成的值作为下一个投影的种子,依此类推...... N
projectVector <- function(N, seed)
{
myX1 <- projectX(seed)
myX2 <- projectX(myX1)
myX3 <- projectX(myX2)
myXN <- projectX(myXNMinusOne)
c(myX1, myX2, myX3, myXN)
}
myProjection <- projectVector(last(myXTS)$x)
所以这可以像这样实现:
# projectVector :: (integer, float) -> [float]
projectVector <- function(n, seed){
results <- c(seed)
previous <- seed
for(i in 0:n){
new <- projectX(previous)
results[i+1] <- new
previous <- new
}
results
}
projectVector(10, as.numeric(last(myXTS)$x))
我绝对觉得有一种蛮力的解决方案。但是我觉得在R中可能有更多惯用和表达方式来实现这一点。