R语言eurostat包筛选功能异常问题求助
解决eurostat包筛选数据不符合预期的问题
问题根源
你的问题主要出在两个方面:
- 国家代码错误:eurostat使用标准欧盟地理代码,你用的
SW(瑞典)、GB(英国)不是该数据集的有效代码——瑞典正确代码是SE,英国在多数eurostat数据集中用UK而非GB。 - 未确认筛选维度的有效取值:如果指定的
unit或其他筛选值在数据集里不存在,get_eurostat不会报错,而是返回所有符合其他条件的数据,导致结果出现非预期的unit值。
解决步骤
- 先确认筛选维度的有效取值
用get_eurostat_dic函数查看数据集里geo和unit的所有可选值,避免用错代码:
library(eurostat) # 查看lfsa_urgaed数据集的geo维度有效代码 geo_valid <- get_eurostat_dic("lfsa_urgaed", "geo") print(geo_valid) # 查看unit维度的有效取值 unit_valid <- get_eurostat_dic("lfsa_urgaed", "unit") print(unit_valid)
- 修正筛选条件并重新提取数据
把错误的国家代码替换为有效代码,再执行筛选:
# 修正国家代码:SW→SE,GB→UK unemp <- get_eurostat("lfsa_urgaed", filters = list(geo = c("CZ","DE","UK","SE", "PL"), age = "Y15-74", sex = "T", unit = "PC", time = 2000:2020 )) # 查看最终结果中的国家列表 unique(unemp$geo)
- 验证unit筛选是否生效
查看结果中的unit值,确认是否只有PC:
unique(unemp$unit)
如果仍有其他unit值,说明你指定的age/sex/geo组合下,部分国家没有PC单位的数据,此时可以调整筛选条件,或查看该组合下的有效unit值。
内容的提问来源于stack exchange,提问作者Chhorwortey
相关产品推荐
相关产品推荐

