2

サブセットが次のようになるように、何百万もの個々の ID に観測を伴うdate.frameorがあるとします。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
4

1 に答える 1