Р: Распределение учащихся по равным группам со случайной выборкой. Понимание аргумента rep () length.out для sample () - PullRequest
0 голосов
/ 01 ноября 2019

У меня 33 ученика, которых я хочу разбить на группы по 6 (или как можно ближе) в 5 разных случаях. Поэтому я присваиваю студентам разные цифры от 1 до 6.

Мне удалось сделать следующее:

studentlist <- data.frame(seq(1:33))

studentlist$Occassion1 <- sample(factor(rep(1:6, length.out=nrow(studentlist)), 
                                 labels=paste0(1:6)))
studentlist$Occassion2 <- sample(factor(rep(1:6, length.out=nrow(studentlist)), 
                                 labels=paste0(1:6)))
studentlist$Occassion3 <- sample(factor(rep(1:6, length.out=nrow(studentlist)), 
                                 labels=paste0(1:6)))
studentlist$Occassion4 <- sample(factor(rep(1:6, length.out=nrow(studentlist)), 
                                 labels=paste0(1:6)))
studentlist$Occassion5 <- sample(factor(rep(1:6, length.out=nrow(studentlist)), 
                                 labels=paste0(1:6)))

Кажется, это работает. Как я понял, я запрашиваю для каждой строки случайную выборку от 1 до 6.

Как аргумент length.out из rep () взаимодействует с sample ()?

Когда я запускаю таблицу частот для проверки размеров групп, я нахожу следующее:

онемение = 1,2,3,4,5,6. размер = 6,6,6,5,5,5.

Я попытался вместо этого попросить 7 групп, и получил размеры групп:

онемение = 1,2,3,4,5.6.7. размер = 5,5,5,5,5,4,4.

Почему они организованы в таком порядке?

1 Ответ

2 голосов
/ 01 ноября 2019

У вас есть этот конкретный шаблон из-за того, как функция rep работает с length.out. Если вы хотите создать группы из 6,

rep(1:6, length.out = 33) 

сначала повторит цифры от 1 до 6 5 раз (генерирует 30 значений) и дополнит 3 пропущенных значениями 1, 2 и 3. Таким образом, вы будетевсегда есть еще один студент в группах 1, 2 и 3.

...