R语言中如何将泰坦尼克号数据集的兄弟姐妹数量转为二元变量
R实现泰坦尼克数据集兄弟姐妹字段重编码的方法
以下是两种常用的实现方案,默认你的数据集命名为titanic,兄弟姐妹数量字段为标准字段名SibSp,如果你的字段名不同,替换为实际名称即可:
- 基础R实现
直接使用ifelse函数完成判断生成新字段:
# 新增二元字段sib_binary:0=无兄弟姐妹同行,1=至少1名兄弟姐妹同行 titanic$sib_binary <- ifelse(titanic$SibSp == 0, 0, 1)
- tidyverse/dplyr 实现(适配数据处理流水线场景)
先加载dplyr包,再通过mutate生成新字段,有两种常用写法:
library(dplyr) # 写法1:case_when逻辑清晰,便于后续调整规则 titanic <- titanic %>% mutate(sib_binary = case_when( SibSp == 0 ~ 0, .default = 1 )) # 写法2:逻辑值转整数,写法更简洁 titanic <- titanic %>% mutate(sib_binary = as.integer(SibSp >= 1))
- 验证重编码结果
运行交叉表确认规则匹配正确:
table(titanic$SibSp, titanic$sib_binary)
运行后可看到所有SibSp=0的样本对应值为0,SibSp≥1的样本对应值为1,完全匹配你的重编码需求。
内容的提问来源于stack exchange,提问作者Lifeni
相关产品推荐
相关产品推荐

