1

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

OrdersData我目前在名为prospectdrops的数据框中有一列。我首先将其转换为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 循环函数来说是永久的。我知道“应用”可能是答案,但在函数的描述中看不到直接的比较器。有任何想法吗?

4

1 回答 1

4

kinlag.zoo可以是向量。见?lag.zoo

x <- zoo(11:21)
lag(x,1:3)
于 2012-11-01T02:31:44.270 回答