私はUser
を尊重し、Value
の遅れを作成したいこの一般的な遅れが
User Date Value
A 2012-01-01 4
A 2012-01-02 5
A 2012-01-03 6
A 2012-01-04 7
B 2012-01-01 2
B 2012-01-02 3
B 2012-01-03 4
B 2012-01-04 5
に似たデータセットを持っています。
User Date Value Value.lag
A 2012-01-01 4 NA
A 2012-01-02 5 4
A 2012-01-03 6 5
A 2012-01-04 7 6
B 2012-01-01 2 NA
B 2012-01-02 3 2
B 2012-01-03 4 3
B 2012-01-04 5 4
私はループ
df$value.lag1<-NA
levs<-levels(as.factor(df$User))
levs
for (i in 1:length(levs)) {
temper<- subset(df,User==as.numeric(levs[i]))
temper<- rbind(NA,temper[-nrow(temper),])
df$value.lag1[df$User==as.numeric(as.character(levs[i]))]<- temper
}
で非常に非効率的にそれをやった。しかし、これは非常に遅いです。私はby
とtapply
を使ってみましたが、それらを動作させる方法は分かりませんでした。
User要素のためにXTSまたはTSが動作しないと思います。
提案がありますか?
私は 'plm'パッケージにこのタイプのデータの実装があると思います。 – Seb