R 如何根据唯一值计算平均时间间隔?
当我试图计算另一列中相同值出现之间的平均时间间隔(多少天)时遇到问题 我的数据如下所示:R 如何根据唯一值计算平均时间间隔?,r,time,aggregate,intervals,R,Time,Aggregate,Intervals,当我试图计算另一列中相同值出现之间的平均时间间隔(多少天)时遇到问题 我的数据如下所示: 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
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
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
我想得到这样的东西:
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
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
我尝试使用:
aggregate(dt~subject_id, data, mean)
但它不能根据日期值计算平均值。有什么想法吗?我的第一个方法是这样的:
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
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
df$dt%
分组人(受试者id)%>%
总结((最大(dt)-最小(dt))/(n()-1))
#
#1113.0天
#24123.0天
#377天
#484天
#5天
#6937.0天
#7947.5天
#8天
#91332南日
#101791南日
我想这是你的一个起点。。。您可以根据需要进行修改。平均值是如何计算的?23号和7号看起来并不平均。它们只是两次约会之间的差异。“我想这是你的起点”。我觉得你很谦虚;这对我来说似乎是一个很好的解决方案。