我有通道 A、B 和 C 的逐秒数据,如下所示(这仅显示前 6 行):
date A B C
1 2020-03-06 09:55:42 224.3763 222.3763 226.3763
2 2020-03-06 09:55:43 224.2221 222.2221 226.2221
3 2020-03-06 09:55:44 224.2239 222.2239 226.2239
4 2020-03-06 09:55:45 224.2044 222.2044 226.2044
5 2020-03-06 09:55:46 224.2397 222.2397 226.2397
6 2020-03-06 09:55:47 224.3690 222.3690 226.3690
我希望能够根据关闭时间提取 A、B 和 C 列的多个 5 分钟平均值。有没有办法做到这一点,我只需要输入开始时间段,而不必为我要提取的每个时间段输入开始和结束时间?本质上,我希望能够输入开始时间并让我的代码计算并提取连续 5 分钟的平均值。
我以前使用“openair”包中的“time.average”函数来获取整个数据集的 1 分钟平均值。然后我创建了一个带有开始时间的向量,然后使用“子集”函数来提取我感兴趣的 1 分钟平均值。
library(openair)
df.avg <- timeAverage(df, avg.time = "min", statistic = "mean")
cond.1.time <- c(
'2020-03-06 10:09:00',
'2020-03-06 10:13:00',
'2020-03-06 10:18:00',
) #enter start times
library(dplyr)
df.cond.1.avg <- subset(df.avg,
date %in% cond.1.time) #filter data based off vector
df.cond.1.avg <- as.data.frame(df.cond.1.avg) #tibble to df
但是,这种方法不适用于 5 分钟的平均值,因为并非我感兴趣的所有时间框架都以 5 分钟的增量开始。此外,我之前的方法迫使我只使用从一分钟开始的 1 分钟平均值。
我需要能够提取全天随机分布的 5 分钟平均值。这些不是滚动平均值。我需要每天提取大约 30 个 5 分钟的平均值,因此只能输入开始日期是关键。
谢谢!