【发布时间】:2018-02-09 19:55:10
【问题描述】:
我想知道如何使用 data.table 中的lapply 获取data.table 中的two column 的date difference?
library(data.table)
dt <- fread(" ID Date ME_Mes DOB
A 2017-02-20 0.0000 2016-08-19
B 2017-02-06 2.3030 2016-03-11
C 2017-03-20 0.4135 2016-08-19
D 2017-03-06 0.0480 2016-10-09
E 2017-04-20 2.4445 2016-05-04")
> dt
ID Date ME_Mes DOB
1: A 2017-02-20 0.0000 2016-08-19
2: B 2017-02-06 2.3030 2016-03-11
3: C 2017-03-20 0.4135 2016-08-19
4: D 2017-03-06 0.0480 2016-10-09
5: E 2017-04-20 2.4445 2016-05-04
###I'd like to calculate the difference in weeks for every ID by comparing the DOB-Date.
我厌倦了以下内容:
dt[,lapply(.SD, diff.Date), .SDcols = c(4,2), ID] # but did not work!
【问题讨论】:
-
dt[, "diff" := difftime(strptime(dt$Date, format = "%Y-%m-%d"),strptime(dt$DOB, format = "%Y-%m-%d"), units = "weeks")] -
@Masoud 看起来值得作为答案发布,但我想我会先用 := 覆盖每个列作为 IDate。
标签: r date data.table lapply