行之间的差异时间不一致
Difftime between rows inconsistent
我想用 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
您不能在数据 table 命令中调用 AllPat$Date
并期望您的程序按 PatID 拆分它。您的程序当前尝试为每个 ID 使用整个向量 AllPat$Date
。您需要在数据中引用 Date 变量 table 以便程序可以在有意义的情况下同时使用 Date 和 PatID。
我会先将您的 data.frame
转换为 data.table
以尽可能多地保留您的代码
dtAllPat=as.data.table(AllPat)
dtAllPat[, Tage := difftime(Date, shift(Date), units = "days"), keyby = .(PatID)]
我想用 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
您不能在数据 table 命令中调用 AllPat$Date
并期望您的程序按 PatID 拆分它。您的程序当前尝试为每个 ID 使用整个向量 AllPat$Date
。您需要在数据中引用 Date 变量 table 以便程序可以在有意义的情况下同时使用 Date 和 PatID。
我会先将您的 data.frame
转换为 data.table
以尽可能多地保留您的代码
dtAllPat=as.data.table(AllPat)
dtAllPat[, Tage := difftime(Date, shift(Date), units = "days"), keyby = .(PatID)]