【发布时间】:2015-04-13 14:11:36
【问题描述】:
我的目标是拟合模型并在每次变化时生成预测 y 和 x 变量。这将使我的代码更加简洁。
当我尝试对测试时间序列进行预测时 R 抛出一个错误: eval(expr,envir,enclos)中的错误:找不到对象'train' 但是 train 是在函数的本地环境中产生的 如果我将 train 移动到全局环境中,则没有错误
我需要做什么才能使所有语句都包含在函数中?
library(fpp)
y <- (1:60)
z <- y + rnorm(60)
my.df <- data.frame(y,z)
NFcst <- 30
my.fcast <- fcast('y','z',my.df,NFcst)
fcast <- function(a,b,df,h) {
model <- paste(a,'~',b)
x <- ts(data=df)
train.end <- time(x)[nrow(x)-h]
test.start <- time(x)[nrow(x)-h+1]
train <- window(x,end=train.end)
test <- window(x,start=test.start)
fit <- lm(model, data=train)
my.fcast <- forecast(fit,test) #error object 'train' not found
}
#If I move train to the global environment, there is no error
x <- ts(data=my.df)
train.end <- time(x)[nrow(x)-NFcst]
train <- window(x,end=train.end)
my.fcast <- fcast2('y','z',my.df,NFcst)
fcast2 <- function(a,b,df,h) {
model <- paste(a,'~',b)
test.start <- time(x)[nrow(x)-h+1]
test <- window(x,start=test.start)
fit <- lm(model, data=train)
my.fcast <- forecast(fit,test) #no error
}
【问题讨论】:
标签: r