我有一个包含每个游戏和多个玩家的游戏日期的篮球玩家数据的数据表。我想创建一个计算自上一场比赛以来的天数的列。我使用的是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