You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:00:50