dput(d)
structure(list(TimeStamp = structure(c(1459569739, 1459569739,
1459569739, 1459569739, 1459569739, 1459569739), class = c("POSIXct",
"POSIXt"), tzone = ""), Status = structure(c(1L, 2L, 1L, 1L,
1L, 1L), .Label = c("get", "send"), class = "factor")), .Names = c("TimeStamp",
"Status"), row.names = c(NA, 6L), class = "data.frame")
这是大数据集的子集。我需要每5分钟计算一次状态栏。状态可以发送或获取。我需要每隔5分钟计算一次状态。
我尝试过这样的事情:
agg<- aggregate(data["Status"], list(fiveMin=cut(data$TimeStamp, "5 mins")),sum)
它抱怨无法计算因素。还有其他办法吗?
答案 0 :(得分:1)
如果你需要为每个区间都需要这个,并希望零计数某些区间,你可能需要merge
这个带有你需要的区间边界的向量,使用seq
泛型允许使用by="5 min"
的区间规范的POSIXt方法。通过提供的示例,我们只看到一个时间点,因此结果不是特别丰富:
> tapply(d$Status, cut(d$TimeStamp, breaks="5 min"), function(x) sum(x=="get") )
2016-04-01 21:02:00
5
答案 1 :(得分:1)
我建议您只需转换为宽幅格式,此处为SystemModStamp
示例
data.table