gpt4 book ai didi

R:计算特定事件在未来指定时间发生的次数

转载 作者:行者123 更新时间:2023-12-03 15:20:03 26 4
gpt4 key购买 nike

我的简化数据如下所示:

set.seed(1453); x = sample(0:1, 10, TRUE)
date = c('2016-01-01', '2016-01-05', '2016-01-07', '2016-01-12', '2016-01-16', '2016-01-20',
'2016-01-20', '2016-01-25', '2016-01-26', '2016-01-31')


df = data.frame(x, date = as.Date(date))


df
x date
1 2016-01-01
0 2016-01-05
1 2016-01-07
0 2016-01-12
0 2016-01-16
1 2016-01-20
1 2016-01-20
0 2016-01-25
0 2016-01-26
1 2016-01-31

我想计算 x == 1 的出现次数在指定的时间段内,例如从当前日期算起 14 天和 30 天(但不包括当前条目,如果它是 x == 1 。所需的输出将如下所示:
solution
x date x_plus14 x_plus30
1 2016-01-01 1 3
0 2016-01-05 1 4
1 2016-01-07 2 3
0 2016-01-12 2 3
0 2016-01-16 2 3
1 2016-01-20 2 2
1 2016-01-20 1 1
0 2016-01-25 1 1
0 2016-01-26 1 1
1 2016-01-31 0 0

理想情况下,我希望它位于 dplyr ,但这不是必须的。任何想法如何实现这一目标?非常感谢你的帮助!

最佳答案

添加另一种基于 findInterval 的方法:

cs = cumsum(df$x) # cumulative number of occurences
data.frame(df,
plus14 = cs[findInterval(df$date + 14, df$date, left.open = TRUE)] - cs,
plus30 = cs[findInterval(df$date + 30, df$date, left.open = TRUE)] - cs)
# x date plus14 plus30
#1 1 2016-01-01 1 3
#2 0 2016-01-05 1 4
#3 1 2016-01-07 2 3
#4 0 2016-01-12 2 3
#5 0 2016-01-16 2 3
#6 1 2016-01-20 2 2
#7 1 2016-01-20 1 1
#8 0 2016-01-25 1 1
#9 0 2016-01-26 1 1
#10 1 2016-01-31 0 0

关于R:计算特定事件在未来指定时间发生的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com