我正在为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”可能是答案,但在函数描述中没有看到直接比较器。有什么想法吗?
答案 0 :(得分:4)
k
中的 lag.zoo
可以是矢量。请参阅?lag.zoo
。
x <- zoo(11:21)
lag(x,1:3)