サブセットが次のようになるように、何百万もの個々の ID に観測を伴うdate.frame
orがあるとします。data.table
id <- c(3,3,3,5,5)
data <- c(24,48,60,84,96)
start <- as.Date(c("2006-01-01","2009-12-09","2010-01-02","2006-04-24", "2009-12-09"))
df <- data.frame(id,data,start) ; head(df)
id data start
1 3 24 2006-01-01
2 3 48 2009-12-09
3 3 60 2010-01-02
4 5 84 2006-04-24
5 5 96 2009-12-09
そして、系列の他のすべての共変量の終了日を作成して、期間 t の終了日が期間 t+1 の開始日から 1 日を引いた日付になるようにします。問題は、1) これは ID で行う必要があり、2) + 1 がない場合、レコードは進行中のマーカーを取得します (例: "9999-12-31")。製品は次のようになります。
df$end <- as.Date(c("2009-12-08","2010-01-01","9999-12-31","2009-12-08",
"9999-12-31"));head(df)
id data start end
1 3 24 2006-01-01 2009-12-08
2 3 48 2009-12-09 2010-01-01
3 3 60 2010-01-02 9999-12-31
4 5 84 2006-04-24 2009-12-08
5 5 96 2009-12-09 9999-12-31