我有一个如下所示的数据集:
datetime <- seq.POSIXt(from=as.POSIXct("2017-05-09 11:45:01", tz="GMT"),
to=as.POSIXct("2017-05-09 12:45:00", tz="GMT"), by="sec")
group <- rep(1:120, each = 30)
sample.dat <- data.frame(datetime,group)
head(sample.dat)
datetime group
1 2017-05-09 11:45:01 1
2 2017-05-09 11:45:02 1
3 2017-05-09 11:45:03 1
4 2017-05-09 11:45:04 1
5 2017-05-09 11:45:05 1
6 2017-05-09 11:45:06 1
我想按组平均时间,例如到一个新的数据框,其中日期时间列作为平均时间,组列作为组编号。所需的输出示例:
new.datetime group
1 2017-05-09 11:45:15 1
2 2017-05-09 11:45:45 2
3 2017-05-09 11:46:15 3
我尝试过使用aggregate()
,但返回的日期时间列是数字格式,例如:
group date
1 1 1493984723
2 2 1493984753
3 3 1493984783
4 4 1493984813
5 5 1493984843
6 6 1493984873
那么如何按组平均所需输出格式的时间?
最佳答案
聚合
似乎有效?
aggregate(sample.dat$datetime,FUN=mean,by=list(group))
# Group.1 x
# 1 1 2017-05-09 14:45:15
# 2 2 2017-05-09 14:45:45
# 3 3 2017-05-09 14:46:15
# 4 4 2017-05-09 14:46:45
# 5 5 2017-05-09 14:47:15
# 6 6 2017-05-09 14:47:45
关于r - 如何在 R 中按组平均时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901324/