通过 R 中的选定组随机化样本

Randomizing a sample by selected groups in R

在我的数据集中,90 人(样本)必须每人玩两种类型的游戏,总共四种类型:XYZW.我想在 R 中随机化每个人将玩的游戏以及游戏顺序,以便遵循以下方式:

UA First game Second game
Person 1 Game X Game W
Person 2 Game W Game Y
Person 3 Game Z Game W

因此,每个游戏必须由相同数量的人玩(,每场30人),并且游戏W必须由所有人玩。有没有在 R 中执行此操作的简单方法?

  1. 创建包含游戏 X、Y、Z 的 30 次重复的向量
  2. 创建该向量的随机排列
  3. 每场比赛加场W
  4. 排列每个游戏对
games <- t(
  apply(
    data.frame(
      first_game = sample(rep(c("X", "Y", "Z"), 30), 90),
      second_game = "W"
    ),
    1,
    function(x) sample(x, 2)
  )
)

games <- cbind(paste("pearson", 1:90), games)
colnames(games) <- c("UA" ,"first_game", "second_game")
games <- as.data.frame(games)