使用二进制数据创建单独的列

Creating separate columns with binary data

提问人:sds5149 提问时间:10/23/2023 最后编辑:sds5149 更新时间:10/23/2023 访问量:43

问:

对 R 来说非常陌生。我有一个使用 1,0 进行控制和干预的数据框(组)。我想拆分数据框并创建两个新变量,一个变量为 0(控件作为标签),另一个变量为 1(干预作为标签)。

请参阅以下数据集

'data.frame':   401 obs. of  14 variables:
 $ id           : int  100 101 104 105 108 112 113 114 126 130 
 $ age          : int  47 52 32 53 56 45 45 49 47 46 
 $ sex          : int  1 1 1 1 1 1 1 1 1 1 
 $ migraine     : int  1 1 1 1 1 1 1 1 1 1 
 $ chronicity   : int  35 8 14 10 40 27 30 49 42 3 
 $ acupuncturist: int  12 12 12 9 9 9 9 9 5 7 
 $ practice_id  : int  35 35 35 25 25 25 25 25 28 15 
 $ group        : int  1 0 0 0 0 1 1 1 0 1

我希望通过创建一个新的变量控制和新的变量干预并将 0 分配给控制组和 1 分配给干预组,将 data$group 变异为 2 个新变量

谢谢

尝试如下:

data$control <- (ifelse(data$group == 0, "control", "intervention"))

这会将分类标签应用于二进制数字数据点,将每个 1 或 0 重命名为干预/控制,这不是我的意图。

R 变量 二进制

评论

1赞 RKeithL 10/23/2023
欢迎来到 Stack Overflow,@sds5149。很多人都愿意帮助你,但你需要提供足够的数据来创建一个可重现的例子。请参阅 stackoverflow.com/questions/5963269/...的指南。

答:

0赞 Michael M 10/23/2023 #1

使用基数 R:

df1 <- data.frame(group = c(0, 0, 1))
df2 <- df1 |> 
  transform(
    control = (group == 0) * 1,
    intervention = (group == 1) * 1
  )
#   group control intervention
# 1     0       1            0
# 2     0       1            0
# 3     1       0            1