【发布时间】:2021-12-16 21:09:32
【问题描述】:
我有一个如下数据框,并想根据事件的最大传播创建一个时间传播变量。
A<- c('1244', '1244', '1244', '1245', '1245', '1245', '1245', '1245', '1245', '1245')
sequence<- c(1,1,0, 1,1,0,0,1,1,1)
# 1= lived locally and 0 lived internationally
date<- c('19/Oct/12', '19/Oct/12', '20/Oct/12', '19/Oct/11', '19/Oct/11', '22/Nov/12',
'24/Nov/12', '29/Nov/12','2/Dec/12', '29/Dec/12')
df<- data.frame(A,sequence, date)
我想计算这些人在本地和国际位置的平均时间分布。例如,如果我们看到人 1244,她/他有序列 110(即,他们在本地生活了两个咒语,在国际上生活了 1 个咒语,如果我们要计算时间分布,则 avg_local_timespread= 所有咒语中的总时间/事件计数转换为 0 天/2 的拼写(这是最后一个日期 - 开始日期(因此,0 天 = 19/Oct/12-19/Oct/12)和 avg_international_timespread= 0/1=0(20/Oct/ 12 年 10 月 12 日至 20 日)
对于 1245 人来说,它是 1100111,所以他们在本地生活了两个咒语,第一个咒语是 11,第二个咒语是 111。因为我想在这种情况下获得本地分布的平均时间,所以它是 start 之间的时间差第一个法术的日期和最后日期(11)+最后一个法术(111)/总法术(5)。因此 avg_local_timespread= 6 天 (30+0)/5 和 avg_international_timespread= 1 天 (2/2)('24/Nov/12'-'22/Nov/12')
我期望输出如下:
A avg_local_timespread avg_international_timespread total_local_timespread
1244 0 0 0
1245 6 1 30
total_international_timespread
1244 0
1245 2
【问题讨论】: