Случайная генерация разных переменных в одном кадре данных - PullRequest
0 голосов
/ 27 декабря 2018

Допустим, у меня есть следующие два набора.

set1=sample(c("White","Black"),
       20,prob = c(0.6,0.4),replace = TRUE)
set2=sample(c("yes","no"),
            20,prob = c(0.48,0.32),replace = TRUE)

из этого мне нужно сгенерировать 20 (случайных) раз, когда каждая репликация содержит один столбец из каждого набора, который генерируется случайным образом. . Например, «набор 1» в репликации 2 не должен совпадать с «набором 1» в репликации 1.

Другими словами, каждая репликация должна генерироваться случайным образом.

Может кто-нибудь помочь мне сделать это?

Я знаю, как генерировать 20 повторений отдельно для каждого набора следующим образом:

replicate(n=20,set1)
replicate(n=20,set2)

Но здесь каждая переменная генерируется случайным образом 20 раз отдельно.Что мне нужно, это что-то вроде репликации (случайной генерации) каждой переменной одновременно.

Может быть, мне придется использовать lapply, чтобы создать 20 списков, в каждом из которых есть 2 столбца на основе набора 1 и набора 2.но я понятия не имею, как это сделать.

1 Ответ

0 голосов
/ 27 декабря 2018

Мы можем определить функцию, которая генерирует кадр данных случайным образом и вызвать его 20 раз, используя replicate, чтобы получить список из 20 кадров данных.

my_func <- function(set1, set2) {
    data.frame(set1 = sample(set1), set2 = sample(set2))
}

replicate(20, my_func(set1, set2), simplify = FALSE)
...