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

如何在R语言中将数值型zom$Country.Code替换为对应字符串值

嘿,这个需求很常见,我给你几种简单可靠的实现方法,你可以根据自己的习惯来选:

方法1:用命名向量做值匹配

这种方法最直观,先建立整数编码和国家名称的映射关系,再直接匹配替换:

# 第一步:创建映射用的命名向量,整数编码作为名字,对应国家名称作为值
country_map <- c(
  "1" = "India", "14" = "Australia", "30" = "Brazil", "37" = "Canada",
  "94" = "Indonesia", "148" = "NewZealand", "162" = "Phillipines",
  "166" = "Qatar", "184" = "Singapore", "189" = "southAfrica",
  "191" = "SriLanka", "208" = "Turkey", "214" = "UAE",
  "215" = "UnitedKingdom", "216" = "UnitedStates"
)

# 第二步:替换原列的值,注意把整数转成字符来匹配命名向量的名字
zom$Country.Code <- country_map[as.character(zom$Country.Code)]
方法2:通过因子(Factor)转换

如果之后你还需要保留原整数编码的信息,这种方法很合适——它会把列转成因子类型,既显示国家名称,又能随时转回原编码:

# 将整数列转换为因子,指定原编码为levels,对应国家名称为labels
zom$Country.Code <- factor(
  zom$Country.Code,
  levels = c(1,14,30,37,94,148,162,166,184,189,191,208,214,215,216),
  labels = c("India","Australia","Brazil","Canada","Indonesia","NewZealand","Phillipines","Qatar","Singapore","southAfrica","SriLanka","Turkey","UAE","UnitedKingdom","UnitedStates")
)

# 如果之后想把因子转成普通的字符向量,执行下面这行即可:
# zom$Country.Code <- as.character(zom$Country.Code)
方法3:用dplyr的recode函数(适合tidyverse用户)

如果你平时习惯用tidyverse系列的工具,用dplyr的recode函数会更符合你的工作流:

# 先加载dplyr包(如果没装的话先运行install.packages("dplyr"))
library(dplyr)

# 使用mutate和recode替换列值,注意整数参数要加反引号
zom <- zom %>%
  mutate(Country.Code = recode(
    Country.Code,
    `1` = "India", `14` = "Australia", `30` = "Brazil", `37` = "Canada",
    `94` = "Indonesia", `148` = "NewZealand", `162` = "Phillipines",
    `166` = "Qatar", `184` = "Singapore", `189` = "southAfrica",
    `191` = "SriLanka", `208` = "Turkey", `214` = "UAE",
    `215` = "UnitedKingdom", `216` = "UnitedStates"
  ))

内容的提问来源于stack exchange,提问作者vidhi amin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:35:47