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

如何通过条件语句基于DataFrame的Variable列生成Gender新列?

基于R DataFrame生成Gender新列的方法

针对你提供的DataFrame,这里有几种实用的方法来生成Gender列:

方法一:Base R原生实现

利用grepl检测字符串中的关键词,结合嵌套ifelse完成赋值:

# 生成Gender列
DF$Gender <- ifelse(grepl("male", DF$Variable), "male",
                    ifelse(grepl("female", DF$Variable), "female",
                           ifelse(grepl("transgender", DF$Variable), "transgender", NA)))

grepl("关键词", 列名)会返回布尔值,标记该单元格是否包含目标关键词,再通过ifelse依次匹配并赋值。

方法二:用dplyr包简化多条件判断

如果习惯使用tidyverse工具链,dplyr的case_when语法更直观,适合多分支条件:

# 先加载dplyr包
library(dplyr)

# 新增Gender列
DF <- DF %>%
  mutate(Gender = case_when(
    grepl("male", Variable) ~ "male",
    grepl("female", Variable) ~ "female",
    grepl("transgender", Variable) ~ "transgender",
    TRUE ~ NA_character_ # 处理未匹配到的情况
  ))

每个条件行对应一个匹配规则和结果,逻辑清晰易维护。

方法三:直接提取关键词(最简洁)

因为Variable列中的性别词是明确的唯一关键词,用stringr包的str_extract可以直接提取:

# 加载stringr包
library(stringr)

DF$Gender <- str_extract(DF$Variable, "male|female|transgender")

该方法通过正则表达式匹配三个关键词中的任意一个,直接提取作为Gender列的值,代码最简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:45:36