在R中从大型数据框提取单一国家筛选的子数据框
提取单一国家数据的R解决方案
针对你的需求,这里有几种实用的方法,不用复杂的左连接也能快速搞定:
方法1:直接通过关键词过滤聚合体
很多区域聚合体的名称都有明显特征(比如包含"World"、"states"、"and the"这类词),直接用正则表达式过滤掉这些条目:
# 筛选出所有非区域聚合体的单一国家数据 single_countries <- test[!grepl("World|states|and the", test$country), ] # 如果只需要特定国家(比如瑞典),直接精准匹配 sweden_data <- test[test$country == "Sweden", ]
方法2:用R包获取权威国家名单
如果需要更严谨的标准国家列表,可以用countrycode包自带的权威国家数据:
# 先安装并加载包(首次使用需要安装) install.packages("countrycode") library(countrycode) # 获取英文标准国家名称列表 country_list <- data.frame(country = codelist$country.name.en) # 和原数据匹配,只保留属于标准国家的条目 single_countries <- merge(test, country_list, by = "country")
方法3:手动指定目标国家
如果你已经知道所有需要保留的单一国家名称,直接手动创建列表筛选:
# 列出你需要的单一国家 target_countries <- c("Australia", "Brazil", "Sweden") # 筛选出目标国家的数据 single_countries <- test[test$country %in% target_countries, ]
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

