person_id diag_date concept_id event diff_prev_event
1: 1 2012-01-15 4265600 comorb NA secs
2: 1 2012-01-15 201820 comorb 0 secs
3: 1 2012-03-15 4265600 comorb 5184000 secs
4: 2 2012-03-15 201820 comorb NA secs
5: 2 2012-06-22 201820 comorb 8553600 secs
6: 2 2012-06-22 4265600 comorb 0 secs
我试图计算每个人自上次活动以来的天数.我遇到了两个问题.
- 时差以秒为单位显示.我需要休息几天.(5184000秒=30天)
- 如果两天是相同的日期,那么第二天显示0,此时它应该查看不同的日期.第5行和第6行的日期相同,因此它们的日期差相同.
这是我试过的代码:
dt[order(diag_date),diff_prev_event := difftime(diag_date, lag( diag_date)), by = c("person_id") ]