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

问题描述 投票:0回答:1

对 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 variables binary
1个回答
0
投票

带底座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
© www.soinside.com 2019 - 2024. All rights reserved.