0

我有一些事件由id, var1, var2 and date.

所需的 diff_time 输出如下:

  id var1 var2      date1      date2 dif_time
  1  120    1 2014-06-03 2014-06-30       26
  1  120    1 2014-06-04 2014-06-30       26
  1  120    4 2014-06-05 2014-06-30       25
  2  220    1 2014-06-05 2014-06-30       23
  2  220    1 2014-06-07 2014-06-30       23
  3  120    2 2014-06-10 2014-06-30       15
  3  120    2 2014-06-12 2014-06-30       15
  3  120    1 2014-06-15 2014-06-30       15
  5  220    3 2014-06-20 2014-06-30       10

我需要计算 date1(事件日期)和控制日期 date2 之间的天数差异时间。约束是:

对于event (id,var1,var2)我需要找到 last.date1 并计算:

dif_time(days) = date2 - last.date1, 对于每个事件并报告事件的结果。

我没有找到修复的方法last.date1,因此感谢您的帮助。

4

1 回答 1

1

你可以这样做

dd<-data.frame(
    id = c(1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L, 5L),
    var1 = c(120L, 120L, 120L, 220L, 220L, 120L, 120L, 120L, 220L), 
    var2 = c(1L, 1L, 4L, 1L, 1L, 2L, 2L, 1L, 3L), 
    date1 = structure(c(16224, 16225, 16226, 16226, 16228, 16231, 16233, 16236, 16241), class = "Date"), 
    date2 = structure(c(16251, 16251, 16251, 16251, 16251, 16251, 16251, 16251, 16251), class = "Date")
)

last.date1<-with(dd, ave(date1, id, var1, var2, FUN=max, drop=T))
dd$date2-last.date1

dd$diff_time <- dd$date2-last.date1
于 2014-05-06T01:53:05.320 回答