R 如何根据分类变量将观察结果随机分为两组(治疗组和安慰剂组)>;2级?

R 如何根据分类变量将观察结果随机分为两组(治疗组和安慰剂组)>;2级?,r,R,我有一个带有参与者id和性别的数据集。我想在可用的数据集中,将治疗和安慰剂分别随机分配给男性和女性参与者(治疗组和安慰剂组各50%) dataset<-data.frame("participant ID"=c(1:10), "Gender"=c("M", "F", "M", "F","M", "F","M",

我有一个带有参与者id和性别的数据集。我想在可用的数据集中,将治疗和安慰剂分别随机分配给男性和女性参与者(治疗组和安慰剂组各50%)

dataset<-data.frame("participant ID"=c(1:10), "Gender"=c("M", "F", "M", "F","M", "F","M", "F","M", "F"))

dataset您可以这样做。由于每个性别组有5个OB,2个接受治疗,3个安慰剂,但如果需要,可以产生不同的结果

dataset %>% 
  group_by(Gender) %>% 
  mutate(rand = runif(n(), 0,1), 
         treatment = case_when(rank(rand) < .5*n() ~ 1, 
                               TRUE ~ 0))
# # A tibble: 10 x 4
# # Groups:   Gender [2]
#   participant.ID Gender   rand treatment
#            <int> <chr>   <dbl>     <dbl>
# 1              1 M      0.219          1
# 2              2 F      0.232          0
# 3              3 M      0.811          0
# 4              4 F      0.317          0
# 5              5 M      0.526          1
# 6              6 F      0.303          0
# 7              7 M      0.915          0
# 8              8 F      0.159          1
# 9              9 M      0.831          0
# 10             10 F      0.0400         1
数据集%>%
按性别划分的组别%>%
变异(rand=runif(n(),0,1),
治疗=病例(等级)<.5*n()~1时,
真的(0)
##tibble:10 x 4
##群体:性别[2]
#参与者ID性别和治疗
#                     
#1米0.219 1
#2 F 0.232 0
#3米0.8110
#4 F 0.317 0
#5米0.526 1
#6 F 0.303 0
#7米0.915 0
#8 F 0.159 1
#9米0.8310
#10 F 0.0400 1
你文章的标题表明所涉及的一个变量(可能是上例中的
gender
变量)将有两个以上的值。这在该设置中也应该起作用