У меня проблема с рандомизацией / выборкой, я не могу разобраться.Допустим, я хочу создать рандомизированный порядок представления стимулов в эксперименте с двумя переменными, цветом и элементом, каждый из которых имеет три уровня.
library(dplyr)
set.seed(42)
participant_id <- 1:12
colour <- c("blue", "green", "red")
item <- c("apple", "banana", "pear")
Я хочу, чтобы каждый участник видел случайное сочетание цвета и элемента в случайном порядке в списке, но никогда не видел отдельного значения более одного раза.
Я могу приблизиться к приведенному ниже коду - каждый участник видит каждый цвет один раз в случайном порядке - но не может придумать, как обеспечить, чтобы элемент, связанный с каждым цветом, также появлялся без повторения.
# dataframe of all possible combinations
all_permutations <- crossing(participant_id, colour, item)
my_list <- all_permutations %>%
group_by(participant_id, colour) %>%
# randomly sample one row of item, per colour and participant
sample_n(1) %>%
group_by(participant_id) %>%
# randomly re-order within grouping
sample_frac()
head(my_list, 15)
# A tibble: 15 x 3
# Groups: participant_id [5]
participant_id colour item
<int> <chr> <chr>
1 1 blue pear
2 1 red apple
3 1 green pear
4 2 green banana
5 2 blue pear
6 2 red banana
7 3 blue pear
8 3 green apple
9 3 red banana
10 4 red pear
11 4 green banana
12 4 blue pear
13 5 red banana
14 5 green apple
15 5 blue pear
Любые предложения с благодарностью приняты!Заранее спасибо.