如何在R语言中将国家列表分组到对应大洲?
问题修正:将国家数据按大洲分组的R代码
你的代码无法运行是因为存在几处语法和用法错误,以下是问题点和修正方案:
核心错误点
- 管道符使用错误:
df:group_by应为df %>% group_by,这是dplyr包的标准管道语法 - 缺少依赖包加载:
fct_collapse是forcats包的函数,需先加载包含它的tidyverse,或单独加载dplyr+forcats - group_by用法有误:直接在group_by内定义新列的写法不符合语法规范,需先创建大洲分组列再分组,或调整写法
修正后的代码
先加载所需依赖包:
# 安装(首次运行时)并加载包含dplyr和forcats的tidyverse包 # install.packages("tidyverse") library(tidyverse) # 读取数据 df <- read.csv("~/Datasampling/02/datos_pwt10_continents.csv") # 方案1:先创建独立的大洲列,再按该列分组 tfr_recoded <- df %>% mutate(Continent = fct_collapse(Country, "Europe" = c("Italy", "Spain", "Portugal", "Estonia","Denmark","Iceland","Finland","Norway","Sweden", "Bulgaria", "Belarus", "Poland", "Lithuania", "Hungary", "Ukraine", "Germany","United Kingdom", "France", "Switzerland", "Austria","Netherlands","Czechia", "Slovenia", "Slovakia", "Croatia"), "Asia" = c("Taiwan", "Republic of Korea", "Japan"), "America" = c("USA", "Chile", "Canada") )) %>% group_by(Continent)
如果不需要保留单独的大洲列,也可以直接在group_by内生成分组:
tfr_recoded <- df %>% group_by(Continent = fct_collapse(Country, "Europe" = c("Italy", "Spain", "Portugal", "Estonia","Denmark","Iceland","Finland","Norway","Sweden", "Bulgaria", "Belarus", "Poland", "Lithuania", "Hungary", "Ukraine", "Germany","United Kingdom", "France", "Switzerland", "Austria","Netherlands","Czechia", "Slovenia", "Slovakia", "Croatia"), "Asia" = c("Taiwan", "Republic of Korea", "Japan"), "America" = c("USA", "Chile", "Canada") ))
补充提示
- 请确保数据中的国家名称和代码里的完全匹配(包括大小写、空格),否则不匹配的国家会被标记为NA
- 若分组后需要进行汇总操作,可继续用管道符添加
summarise()等函数
内容的提问来源于stack exchange,提问作者Ramona
相关产品推荐
相关产品推荐

