1

79,000の観測値を持つ時系列に対して、大量のラグ変数(実際には365)を生成しています。

OrdersData現在、データフレームにsという列があります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ループ関数では永遠にかかります。「適用」が答えになる可能性があることは知っていますが、関数の説明に直接コンパレーターはありません。何か案は?

4

1 に答える 1

4

kinlag.zooはベクトルにすることができます。を参照してください?lag.zoo

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