【发布时间】:2017-07-18 19:24:30
【问题描述】:
如果有人问过这个问题,我先道歉,我整天都在搜索,但没有找到可以应用于我的问题的答案。
我正在尝试使用 dplyr(和 co.)解决此问题,因为我以前的方法(for 循环)效率太低。我有一个事件时间数据集,在站点上,在组中。我想总结沿序列在移动窗口中发生的事件的数量(和比例)。
# Example data
set.seed(1)
sites = rep(letters[1:10],10)
groups = c('red','blue','green','yellow')
times = round(runif(length(sites),1,100))
timePeriod = seq(1,100)
# Example dataframe
df = data.frame(site = sites,
group = rep(groups,length(sites)/length(groups)),
time = times)
这是我试图总结每个组中包含给定移动时间窗口内的时间(事件)的站点数量。
目标是遍历向量timePeriod 的每个元素,并总结每个组中有多少事件发生在timePeriod[i] +/- half-window。最终将它们存储在例如一个数据框中,每个组有一列,每个时间步长一行,是理想的。
df %>%
filter(time > timePeriod[i]-25 & time < timePeriod[i]+25) %>%
group_by(group) %>%
summarise(count = n())
如何在不循环遍历我的时间序列并单独存储每个组的汇总表的情况下做到这一点?谢谢!
【问题讨论】: