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

在R中合并RACE与ETHNICITY两个分类变量创建新变量

在R中合并RACE和ETHNICITY变量的方法

在R里合并这两个变量有两种常用且高效的方式,分别基于基础R和tidyverse工具链,以下是具体实现:

基础R方法(无需额外包)

利用paste()函数直接拼接两个变量,指定空格作为分隔符即可。先构造示例数据集,再生成新列:

# 构造示例数据集
df <- data.frame(
  RACE = c("Black", "White", "Asian", "Black"),
  ETHNICITY = c("Non-Hispanic", "Hispanic", "Non-Hispanic", "Hispanic"),
  stringsAsFactors = FALSE
)

# 创建"RACE/ETHNICITY"新列
df$`RACE/ETHNICITY` <- paste(df$RACE, df$ETHNICITY, sep = " ")

运行后数据集会新增一列,示例输出如下:

RACE    ETHNICITY RACE/ETHNICITY
1   Black Non-Hispanic Black Non-Hispanic
2   White    Hispanic    White Hispanic
3   Asian Non-Hispanic Asian Non-Hispanic
4   Black    Hispanic    Black Hispanic

如果数据中存在缺失值,可添加na.rm = TRUE参数忽略缺失项(会自动去掉缺失的部分):

df$`RACE/ETHNICITY` <- paste(df$RACE, df$ETHNICITY, sep = " ", na.rm = TRUE)

tidyverse方法(推荐用于数据清洗流)

如果日常使用tidyverse工具包,可结合dplyr::mutate()和stringr::str_c()实现,代码更符合管道化风格:

# 加载tidyverse包(若未安装先运行install.packages("tidyverse"))
library(tidyverse)

# 通过管道生成新列
df <- df %>%
  mutate(`RACE/ETHNICITY` = str_c(RACE, ETHNICITY, sep = " "))

str_c()的效果和paste()一致,在tidyverse的工作流中更易和其他数据操作(如筛选、分组)结合使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:37:37