【发布时间】:2018-07-14 02:35:14
【问题描述】:
我一直在尝试在 R 中对设定时间段内的一些数据进行平均,但似乎无法使其正常工作。我采用了一些代码,可以很好地随时间平均矩阵。但是,我正在尝试对几周内收集的每 10 分钟的相对湿度读数进行平均。
这是我尝试使用的当前代码。
boundA <- NULL; boundB <- NULL
for (i in 1:(length(StartAve)))
{
boundA[i] <- max(which(LocalDateTime < StopAve[i]))
boundB[i] <- min(which(LocalDateTime > StartAve[i]))
}
MatMean <- NULL
MatMean <- lapply(matrix,function(z)
{
unlist(lapply(1:(length(boundB)),function(b)
{
mean(z[boundB[b]:boundA[b]],na.rm=TRUE)
}))
})
在这段代码中,我可以读取一个.csv 文件,该文件包含我希望平均开始和结束的开始时间和停止时间。我还将读取另一个包含矩阵的文件,并且将根据开始和停止时间对行进行平均。 LocalDateTime 对应于每次为矩阵中的每一列收集数据的时间(我可能没有很好地解释这一点)。
就像我之前提到的,代码适用于矩阵中的数据,但现在我正在尝试对列表中的数据进行平均,所以它不起作用。我希望有人可以帮助我更改/创建可以帮助我进行平均的代码。
以下是我所拥有的
LocalDateTime RH
5/24/2018 14:35 77
5/24/2018 14:37 78
5/24/2018 14:38 79
5/24/2018 14:39 78
5/24/2018 14:40 78
5/24/2018 14:41 78
5/24/2018 14:43 78
5/24/2018 14:44 78
5/24/2018 14:45 78
5/24/2018 14:46 79
5/24/2018 14:47 79
5/24/2018 14:49 79
5/24/2018 14:50 79
我想要返回的是:
Avg time Avg RH
5/24/2018 14:30-14:40 78
5/24/2018 14:40-14:50 78.5
这些扫描发生的时间不是设定的间隔,并且偶尔会暂停,因此平均超过 8 次扫描的简单代码将无法正常工作。
【问题讨论】: