R 为数据创建5秒的间隔并将其分组

R 为数据创建5秒的间隔并将其分组,r,R,我有一个数据帧,其中一列是时间,另一列是价格。看起来像这样 Time | Price 15:31:01 | 2 15:31:03 | 4 15:31:05 | 3 15:31:08 | 1 15:31:10 | 9 Time | Price 15:31:05 | 4.5 15:31:10 | 5 我希望以5秒的间隔对数据进行分组,并取每5秒间隔的平均值,如下所示 Time | Price 15:31:01 | 2 15:31:03 | 4 15:31:05 | 3 1

我有一个数据帧,其中一列是时间,另一列是价格。看起来像这样

Time     | Price
15:31:01 | 2
15:31:03 | 4
15:31:05 | 3
15:31:08 | 1
15:31:10 | 9
Time     | Price
15:31:05 | 4.5
15:31:10 | 5
我希望以5秒的间隔对数据进行分组,并取每5秒间隔的平均值,如下所示

Time     | Price
15:31:01 | 2
15:31:03 | 4
15:31:05 | 3
15:31:08 | 1
15:31:10 | 9
Time     | Price
15:31:05 | 4.5
15:31:10 | 5

我知道可以通过dplyr来实现这一点,以分钟为单位对它们进行分组,从中提取每行的分钟数据,然后按分钟对它们进行分组。但是有没有办法在自定义的第二个间隔中这样做?在这种情况下,我看的是5秒的间隔。

我们可以将
时间
列转换为
POSIXct
格式,然后
将其切割成“5秒”的间隔,并将其作为一个组,并在每组中取
平均值

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     5
数据

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))

df第一个间隔的平均值是多少?不是应该是3点吗?(2 + 4 + 3)/3请考虑接受答案,如果它为你工作或澄清,如果你正在寻找其他东西。