【问题标题】:R: calculate 1-hour average in an irregular 1-min time seriesR:在不规则的 1 分钟时间序列中计算 1 小时平均值
【发布时间】:2016-02-26 18:56:13
【问题描述】:

我正在尝试使用 R 在不规则的 1 分钟时间序列中计算 30 分钟和 1 小时的平均值。

这是数据集的样子:

Sensor_reading      Time

  -0.28     1-25-16 15:00
  -0.27     1-25-16 15:01
  -0.27     1-25-16 15:02
  -0.26     1-25-16 15:03
  -0.25     1-25-16 15:04
  -0.26     1-25-16 15:05
  -0.28     1-25-16 15:06
  -0.28     1-25-16 15:07
  -0.27     1-25-16 15:08
  -0.30     1-25-16 15:12
  -0.31     1-25-16 15:13
  -0.30     1-25-16 15:14
  -0.30     1-25-16 15:15
  -0.31     1-25-16 15:16
  -0.31     1-25-16 15:17
  -0.31     1-25-16 15:18
  -0.31     1-25-16 15:19
  -0.30     1-25-16 15:20
  -0.27     1-25-16 16:00
  -0.28     1-25-16 16:01
  -0.27     1-25-16 16:02
  -0.26     1-25-16 16:03
  -0.26     1-25-16 16:04
  -0.26     1-25-16 16:06

如何使用 R 生成平均数据集,如下所示:

   30mins-output      Time
  -0.24     1-25-16 16:00
  -0.26     1-25-16 16:30
  -0.22     1-25-16 17:00
  -0.25     1-25-16 17:30


   1hour-output      Time
  -0.25     1-25-16 16:00
  -0.23     1-25-16 17:00

【问题讨论】:

  • 平均 1 小时,您可以执行 df %>% group_by(hour(Time)) %>% summarize(1hour-output = mean(Sensor_reading)) 之类的操作。

标签: r time-series average


【解决方案1】:

你可以使用 cut 函数然后 dplyr 总结:

data$Time <- strptime(data$Time, "%m-%d-%y %H:%M")
data$group <- cut(data$Time, breaks="30 min")
data %>% group_by(data$group) %>% summarize(30mins_output = mean(data$Sensor_reading))

类似的一个小时你可以做:

data$group <- cut(data$Time, breaks="hour")

【讨论】:

  • 您能详细解释一下如何使用“%>%”吗?我收到错误:找不到函数“%>%”
  • 对不起,我忘了说,你需要安装并包含库(dplyr)
猜你喜欢
  • 2017-03-06
  • 2017-04-15
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多