我有两个变量X1
和X2
,我使用logit函数(e^x/(1+e^x)
)将这两个变量转换为第三个变量X3
。因此,X3
是一个范围从0到1的变量。根据概率,我想为每个个体分配一个虚拟变量1和0。这项任务只有一条规则,概率越高,治疗组的分配机会就越高。
答案 0 :(得分:0)
如果要根据固定阈值分配两个组,则可以使用@dimitris_ps的建议。在这种情况下,阈值为50%。
ifelse(df$X3 >= 0.5, "Treatment", "Control")
如果要随机分配两个组,则可以生成0到1之间的随机数,然后如果随机数低于随机数,则将个体分配给Treatment
。 runif(n)
生成0到1之间的n
个随机数。
set.seed(1) # So you get the same random numbers each time you run it.
ifelse(df$X3 <= runif(n), "Treatment", "Control")