R 如何根据小时值计算日平均值?
我有一个由6列组成的文本文件,如下所示。在几年内(2001-2013年),每30个造币厂进行一次测量。我想计算每日平均值,例如:对于2001年,取对应于第一天(1)的所有值,计算平均值,并对该年的所有天数以及文本文件中可用的所有年份执行此操作 要读取文件,请执行以下操作: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
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)