R 每组平均计数
我真的很接近,但我错过了最后一步,你能告诉我下面我需要改变什么吗 我的数据集(mydata)如下所示(缺少前几个条目):R 每组平均计数,r,mean,R,Mean,我真的很接近,但我错过了最后一步,你能告诉我下面我需要改变什么吗 我的数据集(mydata)如下所示(缺少前几个条目): date\u daily station\u date air\u min air\u avg air\u max rain\u mm temp\u davg\u temp\u dmax\u temp\u dmin\u c date月数年 1 2006/01/01 NA NA NA 2006-01-01 2006 2 2006/01/02 NA NA NA 2006-01-0
date\u daily station\u date air\u min air\u avg air\u max rain\u mm temp\u davg\u temp\u dmax\u temp\u dmin\u c date月数年
1 2006/01/01 NA NA NA 2006-01-01 2006
2 2006/01/02 NA NA NA 2006-01-02 01 2006
3 2006/01/03 NA NA NA 2006-01-03 01 2006
4 2006/01/04 NA NA NA 2006-01-04 01 2006
5 2006/01/05 NA NA 2006-01-05 01 2006
2006年1月6日2006年1月6日2006年1月1日2006年1月06日
每日数据范围从2006年到2016年,因此我对月平均降雨量以及月平均降雨量>2mm的天数感兴趣
因此,我尝试了以下方法:
library(dplyr)
stats <- mydata %>% group_by(months) %>%
summarise(days_w_rain = length(rain_mm[!is.na(rain_mm)]),
avg_rain = mean(rain_mm, na.rm=TRUE),
days_2mm = sum(rain_mm > 2, na.rm=TRUE),
p2mm = days_2mm / days_w_rain*100)
# A tibble: 12 x 5
months days_w_rain avg_rain days_2mm p2mm
<chr> <int> <dbl> <int> <dbl>
1 01 304 11.8078520 148 48.684211
2 02 310 7.4946903 125 40.322581
3 03 334 9.2680090 156 46.706587
4 04 327 3.7469113 92 28.134557
5 05 310 1.6073032 39 12.580645
6 06 300 1.1322100 39 13.000000
7 07 310 0.6212226 25 8.064516
8 08 333 1.6641862 47 14.114114
9 09 308 4.2796169 71 23.051948
10 10 310 10.7842742 155 50.000000
11 11 300 18.4062900 189 63.000000
12 12 287 20.6697038 155 54.006969
库(dplyr)
统计数据%group_按(月)%>%
总结(天/雨=长度(雨/毫米[!is.na(雨/毫米)]),
平均降雨量=平均值(降雨量mm,na.rm=真实值),
天数=总和(降雨量>2,不适用rm=真值),
p2mm=天(2mm/天(有雨*100)
这给了我以下信息:
library(dplyr)
stats <- mydata %>% group_by(months) %>%
summarise(days_w_rain = length(rain_mm[!is.na(rain_mm)]),
avg_rain = mean(rain_mm, na.rm=TRUE),
days_2mm = sum(rain_mm > 2, na.rm=TRUE),
p2mm = days_2mm / days_w_rain*100)
# A tibble: 12 x 5
months days_w_rain avg_rain days_2mm p2mm
<chr> <int> <dbl> <int> <dbl>
1 01 304 11.8078520 148 48.684211
2 02 310 7.4946903 125 40.322581
3 03 334 9.2680090 156 46.706587
4 04 327 3.7469113 92 28.134557
5 05 310 1.6073032 39 12.580645
6 06 300 1.1322100 39 13.000000
7 07 310 0.6212226 25 8.064516
8 08 333 1.6641862 47 14.114114
9 09 308 4.2796169 71 23.051948
10 10 310 10.7842742 155 50.000000
11 11 300 18.4062900 189 63.000000
12 12 287 20.6697038 155 54.006969
#一个tible:12 x 5
月日平均降雨量日2mm p2mm
1 01 304 11.8078520 148 48.684211
2 02 310 7.4946903 125 40.322581
3 03 334 9.2680090 156 46.706587
4 04 327 3.7469113 92 28.134557
5 05 310 1.6073032 39 12.580645
6 06 300 1.1322100 39 13.000000
7 07 310 0.6212226 25 8.064516
8 08 333 1.6641862 47 14.114114
9 09 308 4.2796169 71 23.051948
10 10 310 10.7842742 155 50.000000
11 11 300 18.4062900 189 63.000000
12 12 287 20.6697038 155 54.006969
这是每月平均降雨量的正确数字,但它给出了所有1月份有雨的总天数(即304天),而不是1月份的平均天数,与降雨量>2mm的天数相同(即从2006年到2016年1月的所有月份中有148天。我想要的是每个月的平均数,而不是总数)
我相信这是一个简单的解决办法,但我不知道如何做到这一点?
如有任何建议,我们将不胜感激
干杯
Sandra假设您拥有所有年份(2006年至2016年)的数据,这将给出所需的输出:
stats <- mydata %>% group_by(months) %>%
summarise(days_w_rain = length(rain_mm[!is.na(rain_mm)]/length(unique(years))),
avg_rain = mean(rain_mm, na.rm=TRUE),
days_2mm = sum(rain_mm > 2, na.rm=TRUE)/length(unique(years)),
p2mm = days_2mm / days_w_rain*100)
stats%分组依据(月)%>%
总结(天/雨=长度(雨毫米[!is.na(雨毫米)]/长度(唯一(年)),
平均降雨量=平均值(降雨量mm,na.rm=真实值),
天数=总和(降雨量>2,na.rm=真实值)/长度(唯一(年)),
p2mm=天(2mm/天(有雨*100)
这是一个快速解决办法。只要除以年数,你就得到了平均值。你需要提供你的数据才能得到答案。请阅读。你的问题对我来说有点模糊。我更新了这个问题,我希望现在更清楚了。你试过用
sum
而不是length
?天哪,今天我显然应该躲在家里这就是修复方法!谢谢Masoud!我遇到了长度问题,有没有其他只计算条目的函数?