在R中生成滞后变量时使用循环避免循环(并使用动物园)

时间:2012-11-01 02:24:43

标签: r time-series zoo

我正在为79,000个观测值的时间序列生成大量滞后变量(实际上是365)。

我目前在数据框OrdersData中有一个名为prospectdrop的列。我首先将其转换为zoo格式以使用lag()函数:

prospectdrops<-zoo(OrdersData$prospectdrop)

然后我执行for循环:

for (i in 1:365){
  prospectdrops[paste("lag",i,"day",sep="")] <- lag(prospectdrops,i*24,na.pad=TRUE)
}

然后我被迫再次使用cbind循环绑定它们以准备data.frame()

for (i in 1:365){
cbind(prospectdrops, prospectdrops[paste("lag",i,"day",sep="")])
}

可以理解,这需要R中的for循环函数。我知道“apply”可能是答案,但在函数描述中没有看到直接比较器。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

k中的

lag.zoo可以是矢量。请参阅?lag.zoo

x <- zoo(11:21)
lag(x,1:3)