使用rgho包批量提取WHO多指标多国家数据报错求助
解决rgho包提取多指标、多国家WHO数据的问题
核心报错原因
之前的操作存在两个不符合规则的误区:
- 多指标不能传入逗号分隔的字符串,
code参数要求接收字符向量 - 多国家过滤不能用逗号分隔,WHO API规定多值过滤需用**分号(;)**分隔,或用包内置工具自动处理格式
正确实现方法
1. 加载rgho包
library(rgho)
2. 提取多个指标
直接给code参数传入字符向量即可,无需手动拼接逗号:
# 示例:提取预期寿命(WHOSIS_000001)和婴儿死亡率(WHOSIS_000002) target_indicators <- c("WHOSIS_000001", "WHOSIS_000002") multi_indicator_data <- get_gho_data(code = target_indicators)
3. 过滤多个国家
有两种可靠实现方式:
方式一:用rgho_filter构建过滤条件(推荐)
该函数会自动适配WHO API的格式规则,无需手动处理分隔符:
# 示例:过滤多米尼加(DOM)和法国(FRA) country_filter <- rgho_filter(COUNTRY = c("DOM", "FRA")) # 结合多指标、多国家,同时过滤2015-2020年数据 multi_data <- get_gho_data( code = target_indicators, filter = country_filter, year = 2015:2020 )
方式二:手动编写过滤字符串
若不想用rgho_filter,需严格遵循WHO API语法,用分号分隔国家代码:
multi_data_manual <- get_gho_data( code = target_indicators, filter = "COUNTRY:DOM;FRA", year = 2015:2020 )
4. 复杂组合过滤
如果需要同时过滤性别、年份等多维度,用rgho_filter直接组合条件即可:
complex_filter <- rgho_filter( COUNTRY = c("DOM", "FRA"), SEX = c("M", "F"), YEAR = 2018:2020 ) complex_data <- get_gho_data(code = target_indicators, filter = complex_filter)
辅助:确认代码正确性
若不确定指标或国家的正确代码,用search_gho查询验证:
# 搜索指标关键词 search_gho("life expectancy") # 搜索国家代码 search_gho("Dominican", filter = "COUNTRY")
内容的提问来源于stack exchange,提问作者almr27
相关产品推荐
相关产品推荐

