在时间序列数据中找到r中的时间戳数据的平均值

时间:2019-06-06 08:22:01

标签: r time-series

我正在处理时间序列数据,我捕获的数据是毫秒格式,即  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)的平均值

请帮助!

1 个答案:

答案 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