将任务随机分配给组

时间:2019-05-16 20:51:11

标签: r random dplyr

我有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")

1 个答案:

答案 0 :(得分:3)

使用dplyr从行数相同的两个数据帧的位置开始,我会这样做:

inner_join(
  mutate(groups, rand = sample(n())),
  mutate(tasks, rand = sample(n())),
  by = "rand"
) %>%
select(-rand)

这将以随机方式将groups的每一行与tasks的每一行进行匹配,但要确保包括了每个组和每个任务。万一在任何一个数据帧中都有更多的列,它将很好地推广。假定每行中的行数相同-否则,将包含较小数据帧中的所有行,以及较大数据帧中的行的随机子样本。

如果您需要其他功能,请更详细地说明随机过程的特征。