如何用R计算各经纬度组合20年的平均降雨量?求代码指导
修正后的R语言计算经纬度20年平均降雨量代码
原代码的问题点
- 无需重新创建
data_latlon数据框,直接使用原数据集操作更简洁,且PlotCode命名易混淆,应保留原列名rain group_by分组变量错误:要计算每个经纬度的20年平均,需按**纬度(lat)和经度(long)**分组,加入date会变成计算每日经纬度均值,不符合需求- 均值计算语法错误:dplyr管道流中需用
summarize()(或summarise())生成汇总结果,直接调用mean()不符合dplyr逻辑
修正后的代码
library(dplyr) # 读取数据集 data <- read.csv('IMD_Precip.csv') # 将标记为-999的缺失值替换为NA data$rain[data$rain == -999] <- NA # 按经纬度分组,计算20年平均降雨量 latlon_avg_rain <- data %>% group_by(lat, lon) %>% # 按唯一经纬度组合分组 summarize( avg_rain_20years = mean(rain, na.rm = TRUE) # 忽略NA值计算均值,生成结果列 ) # 查看最终结果 print(latlon_avg_rain)
代码说明
group_by(lat, lon):把数据按81个唯一经纬度组合拆分成分组summarize(avg_rain_20years = mean(rain, na.rm = TRUE)):对每个分组的降雨量列计算均值,na.rm = TRUE确保跳过替换后的NA值(原数据中的-999),最终生成的结果是81行数据,包含每个经纬度的20年平均降雨量
内容的提问来源于stack exchange,提问作者Purnendu Sardar
相关产品推荐
相关产品推荐

