r - 在 R data.table 中计算时间增量

标签 r date data.table

我有一个篮球运动员数据的数据表,其中包括每场比赛和多名球员的比赛日期。我想创建一个列来计算自上一场比赛以来的天数。我在 R 中使用 data.table 包。

   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 放在第一行,因为这是第一场比赛。

最佳答案

# Reproduce the data.table
DT <- fread("PLAYERID GAME_DATE\n2989 2014-01-1\n2989 2014-01-3")
DT[, GAME_DATE:=as.Date(GAME_DATE)]

# concatenate an NA to the front and use na.pad=FALSE with diff()
DT[, DAY_DIFF:=c(NA, diff(GAME_DATE, lag=1, na.pad=FALSE)), by=PLAYERID]
DT
#    PLAYERID  GAME_DATE DAY_DIFF
# 1:     2989 2014-01-01       NA
# 2:     2989 2014-01-03        2

关于r - 在 R data.table 中计算时间增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079651/

相关文章:

R函数等于excel CHIINV

javascript - moment.js 时区不一致

javascript - 鼠标速度跟踪器中的时间

r - 在 geom_point 中为 ggplot2 中的负值和正值设置不同的颜色

r - 如何为 ggplot 绘图编写测试

r - 如何从表 A 中选择其 ID 与表 B 中的行相匹配但其(非 ID)值不同的行?

通过给定列索引替换数据表中的值

r - 为值的子集创建游程 ID

javascript - 神秘的 javascript 错误取决于 R shiny 应用程序中使用的绘图对象名称

php - 将 DateTime 转换为 Date Doctrine php