如何从R语言月度平均数据集中提取指定年份8月流量数据?
解决R语言筛选河流8月流量数据的问题
错误原因
你报错的核心问题是把input1$mean_va当成函数调用了,但它只是数据框里的数值列,不是函数,所以会出现Error: attempt to apply non-function。
两种正确实现方法
方法1:基础R原生语法
直接通过行索引筛选符合条件的数据,再整理成目标数据集:
# 筛选1980-2021年、8月的行 filtered_rows <- input1[input1$year >= 1980 & input1$month == 8, ] # 创建AugAvgs数据集,包含年份和平均流量列 AugAvgs <- data.frame( year = filtered_rows$year, avg = filtered_rows$mean_va )
注意:要确保你的input1数据框里确实存在year(年份列)和month(月份列),列名必须和代码里的一致,要是实际列名是大写(比如YEAR),要对应修改。
方法2:用tidyverse包(更直观易读)
如果习惯更简洁的语法,可以用dplyr工具包来筛选:
# 先安装包(首次使用时执行) # install.packages("tidyverse") library(tidyverse) AugAvgs <- input1 %>% filter(year >= 1980, month == 8) %>% # 筛选年份≥1980且月份为8的行 select(year, avg = mean_va) # 保留年份列,并把mean_va重命名为avg
内容的提问来源于stack exchange,提问作者Gene Dorrin
相关产品推荐
相关产品推荐

