分层随机分配

时间:2018-02-27 21:05:42

标签: r random

我需要使用8个受试者的分层随机分配来控制和治疗组,根据他们的身体状况评分(BCS)可以高或低。

1600 Pennsylvania Avenue

我需要随机获得每组中具有相同数量的高和低BCS的2组。

1 个答案:

答案 0 :(得分:0)

使用data.table包,您可以执行以下操作(假设您的主题ID位于列名主题中)

library(data.table)

foo = setDT(your.data.frame) # transform your df into a data.table

dat = foo[, .SD[sample(.N, round(.N * 0.5))], by = BCS] # sample 50% of rows of each BCS

foo[subject %in% dat[, .(subject), status := "treatment"][is.na(status), status:= "control"] # assign a control treatment column