【问题标题】:Finding the mean of timestamp data in r for time series data查找时间序列数据的 r 中时间戳数据的平均值
【发布时间】:2019-10-21 17:38:28
【问题描述】:

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

请帮忙!!

【问题讨论】:

  • 15 min改成1 min,你就会得到你想要的间隔
  • @Sotos 我已经更新了我的问题,请帮忙..
  • 我添加了一个答案。看看

标签: r time-series


【解决方案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

【讨论】:

    猜你喜欢
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多