行之间的Difftime不一致

时间:2018-03-28 19:40:46

标签: r date difftime

我想用difftime计算两行(每个ID)之间的日差。在开始时我得到了正确的结果,但在某些行中有不一致的值:

PatId Date Tage
3l 2015-02-10 NA
3l 2015-03-30 48
3l 2015-06-03 65

...

5r 2016-02-02 NA
5r 2016-03-01 62
5r 2016-03-29 -469

这是我的功能:

setDT(AllPat)[, Tage := difftime(AllPat$Date, shift(AllPat$Date), units = "days"), by = PatID]

我已经用tz =" GMT"尝试了它,但它没有改变,也许有人有想法?

让任何人知道如何更改函数来计算差异并始终在第一行写入,以便最后一行只有NA

1 个答案:

答案 0 :(得分:0)

您无法在数据表命令中调用AllPat$Date,并希望程序通过PatID将其拆分。您的程序当前尝试为每个ID使用整个向量AllPat$Date。您需要在数据表中引用Date变量,以便程序可以与Date和PatID一起使用(如果有意义的话)。

我会先将您的data.frame转换为data.table,以尽可能保留您的代码

dtAllPat=as.data.table(AllPat)
dtAllPat[, Tage := difftime(Date, shift(Date), units = "days"), keyby = .(PatID)]