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

如何在R中将多列二进制种族数据合并为分类新列?

R中自动化合并种族分类列的方法

你可以用以下两种方法快速生成目标列,适配数百行数据的批量处理:

1. 基础R方法(无需额外安装包)

先构造示例数据方便测试(直接替换成你的数据集即可):

df <- data.frame(
  Black = c("No", "Yes", "No", "No"),
  White = c("Yes", "No", "No", "Yes"),
  Asian = c("No", "No", "Yes", "No"),
  Hispanic = c("No", "No", "No", "Yes"),
  stringsAsFactors = FALSE
)

用嵌套ifelse生成合并列:

df$race_combined <- with(df, 
  ifelse(Black == "Yes", "Black",
    ifelse(Asian == "Yes", "Asian",
      ifelse(White == "Yes" & Hispanic == "No", "White Non-Hispanic",
        ifelse(White == "Yes" & Hispanic == "Yes", "White Hispanic", NA)
      )
    )
  )
)

2. tidyverse方法(代码更易读)

如果习惯用dplyr包,case_when的逻辑结构更清晰:

library(dplyr)

df <- df %>%
  mutate(race_combined = case_when(
    Black == "Yes" ~ "Black",
    Asian == "Yes" ~ "Asian",
    White == "Yes" & Hispanic == "No" ~ "White Non-Hispanic",
    White == "Yes" & Hispanic == "Yes" ~ "White Hispanic",
    TRUE ~ NA_character_ # 兜底处理意外情况,你的数据可省略此条
  ))

运行后,df$race_combined就是符合要求的分类列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:21