我正在处理时间序列数据,我捕获的数据是毫秒格式,即
02/04/2018 07:45:00.1239
。我想要一个仅包含秒的相同时间戳的均值。
DF
ID Time_Stamp A B C
1 02/02/2018 07:45:00.123 123 567 434
2 02/02/2018 07:45:00.456 123 678 678
3 02/02/2018 07:45:00.687 121 121 121
4 02/02/2018 07:45:01.123 112 2323 2323
如示例中所示,我有毫秒数据。我想要时间02/02/2018 07:45:00
我的结果数据框架应为:
ID Time_Stamp A B C
1 02/02/2018 07:45:01 mean(R1A:R4A) mean(R1B:R4B) mean(R1C:R4C)
2 02/02/2018 07:45:02 mean(R4A:R8A) mean(R4B:R8B) mean(R4C:R8C)
即该特定列的行的平均值。
输出应为:
ID Time_Stamp A B C
1 02/02/2018 07:45:01 122.33 455.33 411
即column A ,Rows 1:3(123,123,121), column B ,Rows 1:3(567,678,121),column C ,Rows 1:3(434,678,121)
的平均值
请帮助!
答案 0 :(得分:1)
由于您想每秒进行一次汇总,因此唯一要做的就是将其转换为正确的日期时间,并将其用作组变量,即
df$grp <- as.POSIXct(paste(as.character(df$ID), as.character(df$Time_Stamp)), format = "%d/%m/%Y %H:%M:%OS")
aggregate(list(mean1 = df$A, mean2 = df$B, mean3 = df$C), list(df$grp), mean)
# Group.1 mean1 mean2 mean3
#1 2018-02-02 07:45:00 122.3333 455.3333 411
#2 2018-02-02 07:45:01 112.0000 2323.0000 2323