我有一個包含每個遊戲和多個玩家的遊戲日期的籃球玩家數據的數據表。我想創建一個計算自上一場比賽以來的天數的列。我使用的是data.table包河R數據表中的計算時間增量
PLAYERID GAME_DATE
1: 2989 2014-01-1
2: 2989 2014-01-3
我用下面的代碼:
DT[, DAY_DIFF:=diff(GAME_DATE, lag=1), by=PLAYERID]
返回:
PLAYERID GAME_DATE DAY_DIFF
1: 2989 2014-01-1 2
2: 2989 2014-01-3 2
它附加的數直到下一場比賽,除了最後一場之外的每一排。在最後一行,它附加上一場比賽以來的天數,即我想要的值。我想把NA放在第一排,因爲這是第一場比賽。
什麼類是'GAME_DATE'?它看起來不像日期。如果是,那麼這可能會起作用,否則,將'asDate()包裝起來''DAY_DIFF:= c(NA,diff(GAME_DATE,lag = 1,na.pad = FALSE)),by = PLAYERID] 'GAME_DATE'周圍' – GSee 2014-09-27 22:18:23
只是雙重檢查'GAME_DATE'類。它是一個日期。我試過你的解決方案,它工作!謝謝。 – Bradley 2014-09-27 22:23:59