如何根据唯一值计算平均时间间隔?

时间:2016-11-11 11:57:18

标签: r time aggregate intervals

我在尝试计算另一列中相同值的出现之间的平均时间间隔(多少天)时遇到了麻烦。

我的数据如下:

An internal error occurred during: "Updating Maven Project".org.eclipse.wst.common.internal.emfworkbench.CompatibilityWorkbenchURIConverterImpl

我希望得到这样的东西:

dt      subject_id
2016-09-13         77
2016-11-07       1791
2016-09-18       1332
2016-08-31         84
2016-08-23         89
2016-08-23         41
2016-09-15         41
2016-10-12         93
2016-10-05         93
2016-11-09         94
2016-10-25         94
2016-11-03         94
2016-10-09        375
2016-10-14         11
2016-09-27         11
2016-09-13         11
2016-08-23         11
2016-08-27         11

我试图使用:

subject_id  mean_day
41          23
93          7
94          7.5
11          13

但它不能从日期值计算平均值。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我的第一种方法是这样的:

df$dt <- as.Date(df$dt)

library(dplyr)

df %>% 
  group_by(subject_id) %>%
    summarise((max(dt) - min(dt))/(n()-1))
#        <int>                          <time>
#1          11                       13.0 days
#2          41                       23.0 days
#3          77                        NaN days
#4          84                        NaN days
#5          89                        NaN days
#6          93                        7.0 days
#7          94                        7.5 days
#8         375                        NaN days
#9        1332                        NaN days
#10       1791                        NaN days

我认为这是你的起点......你可以根据需要进行修改。