我需要使用8个受试者的分层随机分配来控制和治疗组,根据他们的身体状况评分(BCS)可以高或低。
1600 Pennsylvania Avenue
我需要随机获得每组中具有相同数量的高和低BCS的2组。
答案 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