我目前的数据看起来像这样:
datetime.strptime
数据仅包括星期六和星期日,因此它不连续(例如,缺少前一个星期日和下一个星期六/工作日开始之间的数据)。每个周末的数据数量各不相同,因此我需要计算每个星期六星期日集中的观察数量。假设数据在星期六到星期日开始,然后再次进入下一组星期六到星期日,我如何计算每组数据并将其存储在向量中?
编辑:例如,使用上面的数据,我想要的输出将是包含以下值的向量:[9,6,3]
答案 0 :(得分:2)
使用dplyr
解决方案,其中V2
是您当前的天数列:
library(dplyr)
df %>%
mutate(x = lag(cumsum((V2 == 'Sunday' & lead(V2) == 'Saturday')), default = 0)) %>%
group_by(x) %>%
summarise(z = n()) %>%
select(z)
这会产生
z
<int>
1 9
2 6
3 3
答案 1 :(得分:0)
我喜欢使用包data.table来做这样的事情。以下是一个例子。
sort()