我有一个数据帧,其中一列是时间,另一列是价格。它看起来像这样
Time | Price
15:31:01 | 2
15:31:03 | 4
15:31:05 | 3
15:31:08 | 1
15:31:10 | 9我想将数据分组为5秒的间隔,并取每个5秒间隔的平均值,如下所示
Time | Price
15:31:05 | 4.5
15:31:10 | 5我知道可以通过dplyr将它们分组到分钟桶中,在那里我提取每一行的分钟数据,然后按分钟对它们进行分组。但是,有没有办法在自定义的秒间隔内做到这一点呢?在这种情况下,我看到的是5秒的间隔。
发布于 2019-09-17 17:48:33
我们可以将Time列转换为POSIXct格式,并将其转换为"5秒“的间隔,然后将其用作一个组,并在每个组中使用mean
aggregate(Price~ group, transform(df,
group = cut(as.POSIXct(Time, format = "%T"), breaks = "5 secs")), mean)
# group Price
#1 2019-09-17 15:31:01 3
#2 2019-09-17 15:31:06 5data
df <- structure(list(Time = structure(1:5, .Label = c("15:31:01", "15:31:03",
"15:31:05", "15:31:08", "15:31:10"), class = "factor"), Price = c(2L,
4L, 3L, 1L, 9L)), class = "data.frame", row.names = c(NA, -5L))https://stackoverflow.com/questions/57971381
复制相似问题