【发布时间】:2016-05-10 09:34:12
【问题描述】:
我有一个数据框,其中包含 34 个不同系统的日期和温度,每个系统在不同的列中。我需要计算每个系统的平均每小时温度。我使用此代码计算 1 个系统的平均值。但是如果我想计算其他 33 个系统的平均值,我必须一次又一次地重复代码。有没有更好的方法一次找到所有列的小时平均值?
dat$ut_ms <- dat$ut_ms/1000
dat[ ,1]<- as.POSIXct(dat[,1], origin="1970-01-01")
dat$ut_ms <- strptime(dat$ut_ms, "%Y-%m-%d %H:%M")
dat$ut_ms <- cut(dat[enter image description here][1]$ut_ms, breaks = 'hour')
meanNPWD2401<- aggregate(NPWD2401 ~ ut_ms, dat, mean)
我添加了一张数据图片。为了更好地了解我想要什么。
【问题讨论】:
-
欢迎来到 SO。您能否编辑您的问题并包含
dput(head(dat))的结果,以便我们知道您的数据当前的样子。请参阅这篇关于在 R 中创建可重现示例的帖子:stackoverflow.com/questions/5963269/… -
split(dat, cut(strptime(dat$ut_ms, format = '%F %R'), 'hour'))会将您的数据拆分为一个列表。您可以使用lapply来遍历列表。 -
by也可以。
标签: r aggregate moving-average