【发布时间】:2018-07-23 22:07:51
【问题描述】:
我有数据
dt <- data.table(time=as.POSIXct(c("2018-01-01 01:01:00","2018-01-01 01:05:00","2018-01-01 01:01:00")), y=c(1,10,9))
> dt
time y
1: 2018-01-01 01:01:00 1
2: 2018-01-01 01:05:00 10
3: 2018-01-01 01:01:00 9
我想通过time 进行汇总。通常,我会这样做
dt[,list(sum=sum(y),count=.N), by="time"]
time sum count
1: 2018-01-01 01:01:00 10 2
2: 2018-01-01 01:05:00 10 1
但是这一次,我也想在中间的分钟内得到零值,即,
time sum count
1: 2018-01-01 01:01:00 10 2
2: 2018-01-01 01:02:00 0 0
3: 2018-01-01 01:03:00 0 0
4: 2018-01-01 01:04:00 0 0
5: 2018-01-01 01:05:00 10 1
这可以做到吗,例如,使用外部向量
times <- seq(from=min(dt$time),to=max(dt$time),by="mins")
可以作为分组变量提供给 data.table 函数吗?
【问题讨论】:
标签: r data.table aggregation