R 如何根据小时值计算日平均值?

R 如何根据小时值计算日平均值?,r,text-files,R,Text Files,我有一个由6列组成的文本文件,如下所示。在几年内(2001-2013年),每30个造币厂进行一次测量。我想计算每日平均值,例如:对于2001年,取对应于第一天(1)的所有值,计算平均值,并对该年的所有天数以及文本文件中可用的所有年份执行此操作 要读取文件,请执行以下操作: LR=read.table("C:\\Users\\dat.txt", sep ='', header =TRUE) 标题: head(LR) Year day hour mint valu1 valu2 1 2001

我有一个由6列组成的文本文件,如下所示。在几年内(2001-2013年),每30个造币厂进行一次测量。我想计算每日平均值,例如:对于2001年,取对应于第一天(1)的所有值,计算平均值,并对该年的所有天数以及文本文件中可用的所有年份执行此操作

要读取文件,请执行以下操作:

LR=read.table("C:\\Users\\dat.txt", sep ='', header =TRUE)
标题:

head(LR)
   Year day hour mint valu1 valu2
1 2001   1    5   30     0     0
2 2001   1    6    0     1     0
3 2001   1    6   30     2     0
4 2001   1    7    0     0     7
5 2001   1    7   30     5     8
6 2001   1    8    0     0     0
尝试:

还有另一个不那么优雅的选择:

LR$n <- paste(LR$Year, LR$day, sep="-")
tapply(LR$valu1, LR$n, FUN=mean)
LR$n 2003年和<2005年)
试试:

还有另一个不那么优雅的选择:

LR$n <- paste(LR$Year, LR$day, sep="-")
tapply(LR$valu1, LR$n, FUN=mean)
LR$n 2003年和<2005年)

您可以尝试
聚合

res <- aggregate(LR, by = list(paste0(dat$Year, dat$day)), FUN = mean)
## You can remove the extra columns if you want
res[, -c(1,4,5)]

您可以尝试聚合:

res <- aggregate(LR, by = list(paste0(dat$Year, dat$day)), FUN = mean)
## You can remove the extra columns if you want
res[, -c(1,4,5)]

您可以使用
dplyr
<代码>LR%>%按(年、日)分组%>%总结每个(funs(平均值),以('valu')开头)或
聚合(.~年+日,LR[-c(3:4)],平均值)
您可以使用
dplyr
<代码>LR%>%按(年、日)分组%>%总结每个(funs(平均值),以('valu')开头)或
聚合(.~年+日,LR[-c(3:4)],平均值)
很高兴帮助您!我刚把它放在答题箱里。很高兴能帮助你!我刚刚把它放在答案框中。或者公式界面:
聚合(cbind(valu1,valu2)~年+日,LR,mean)
。。。对于理解它的人来说,哪一个更干净。或者公式界面:
aggregate(cbind(valu1,valu2)~年+日,LR,mean)
。。。这对那些理解它的人来说更干净。
aggregate(cbind(valu1, valu2) ~ Year + day, LR, mean)