我有一个数据框
- 以秒为单位的时间(整数)
-布尔值
我试图将时间聚合到 60 秒间隔(0-59、60-119、.... 11940-12000)以获得以下数据帧:
-timeframe(第n分钟)
-该时间范围内的元素数量
-布尔值为真的那个时间范围内的元素数
我查看了聚合、总和、group_by 和 cut,但不明白如何解决我的问题。
感谢所有愿意帮助我的人!
编辑:输出dput(head(data, 20))
:
结构(列表(时间= C(5321L,5320L,5276L,5275L,5275L,5269L,5252L,5195L,5193L,5190L,5184L,5177L,5164L,5146L,5123L,5118L,5100L,5085L,5081L,5062L),布尔= c(假、真、真、真、真、真、假、真、真、真、真、假、真、假、假、真、假、假、假、真)), row.names = 18 :37, class = "data.frame")
您可以使用cut
/findInterval
将数据划分为 60 秒的间隔,并计算每组中的行数和sum
boolean
value 以获取boolean
value所在的计数TRUE
。
library(dplyr)
data %>%
group_by(grp = findInterval(time, seq(min(time), max(time), 60))) %>%
summarise(n = n(),
n_true = sum(boolean))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句