R语言入门求助:将group变量拆分为两个二元新变量
解决方案
方法一:基础R原生实现(无需额外安装包)
利用R中TRUE等价于1、FALSE等价于0的特性,直接生成目标二元变量:
# 生成control列:group为0时赋值1,其余为0 data$control <- as.integer(data$group == 0) # 生成intervention列:group为1时赋值1,其余为0 data$intervention <- as.integer(data$group == 1)
也可以用逻辑更直观的ifelse函数:
data$control <- ifelse(data$group == 0, 1, 0) data$intervention <- ifelse(data$group == 1, 1, 0)
方法二:用dplyr包(适合tidy风格的数据操作)
如果你习惯使用tidyverse生态工具,可通过dplyr::mutate批量生成新列:
library(dplyr) data <- data %>% mutate( control = as.integer(group == 0), intervention = as.integer(group == 1) )
结果验证
以你提供的示例数据为例,前10行的group值为1 0 0 0 0 1 1 1 0 1,生成的control列对应为0 1 1 1 1 0 0 0 1 0,intervention列对应为1 0 0 0 0 1 1 1 0 1,完全符合需求。
内容的提问来源于stack exchange,提问作者sds5149
相关产品推荐
相关产品推荐

