我有5个小组:
groups <- as.tribble( ~ group,
"group_1",
"group_2",
"group_3",
"group_4",
"group_5")
我想将每个人随机分配给一个任务:
tasks <- as.tribble( ~ task,
"task_1",
"task_2",
"task_3",
"task_4",
"task_5")
答案 0 :(得分:3)
使用dplyr从行数相同的两个数据帧的位置开始,我会这样做:
inner_join(
mutate(groups, rand = sample(n())),
mutate(tasks, rand = sample(n())),
by = "rand"
) %>%
select(-rand)
这将以随机方式将groups
的每一行与tasks
的每一行进行匹配,但要确保包括了每个组和每个任务。万一在任何一个数据帧中都有更多的列,它将很好地推广。假定每行中的行数相同-否则,将包含较小数据帧中的所有行,以及较大数据帧中的行的随机子样本。
如果您需要其他功能,请更详细地说明随机过程的特征。