これは非常に単純な質問ですが、決定的な答えを見つけることができなかったので、質問しようと思いました。plm
パネルデータを扱うためにパッケージを使用します。関数を使用してlag
、変数 FORWARD を時間的に遅らせようとしています (デフォルトでは、前の期間から値を取得するため、NEXT から値が必要です)。k=-1
引数として使用することでこれが可能であることを示唆する古い記事/質問 (2009 年頃) をいくつか見つけました。ただし、これを試みると、エラーが発生します。
サンプルコード:
library(plm)
df<-as.data.frame(matrix(c(1,1,1,2,2,3,20101231,20111231,20121231,20111231,20121231,20121231,50,60,70,120,130,210),nrow=6,ncol=3))
names(df)<-c("individual","date","data")
df$date<-as.Date(as.character(df$date),format="%Y%m%d")
df.plm<-pdata.frame(df,index=c("individual","date"))
遅れ:
lag(df.plm$data,0)
##returns
1-2010-12-31 1-2011-12-31 1-2012-12-31 2-2011-12-31 2-2012-12-31 3-2012-12-31
50 60 70 120 130 210
lag(df.plm$data,1)
##returns
1-2010-12-31 1-2011-12-31 1-2012-12-31 2-2011-12-31 2-2012-12-31 3-2012-12-31
NA 50 60 NA 120 NA
lag(df.plm$data,-1)
##returns
Error in rep(1, ak) : invalid 'times' argument
また、 の一部のアプリケーションでplm.data
が置き換えられたことも読みました。ただし、関数ではまったく機能しないようです:pdata.frame
plm
plm.data
lag
df.plm<-plm.data(df,indexes=c("individual","date"))
lag(df.plm$data,1)
##returns
[1] 50 60 70 120 130 210
attr(,"tsp")
[1] 0 5 1
助けていただければ幸いです。遅延に使用するパッケージについて別の提案があれば、私はすべて耳にします。plm
ただし、複数の個人にわたる遅れを自動的に処理し、時系列のギャップをスキップするため、私は気に入っています。