2015-10-25 3 views
0

Я новичок в R и у меня есть вопрос:Несколько различных случайных выборок в R

choice <- c(TRUE, FALSE, FALSE, FALSE) 
rep(sample(choice, size = 4, replace=FALSE), times = n) 

всегда повторяет один и тот же вектор, например (FALSE, TRUE, FALSE, FALSE)

Однако, я хочу иметь п различные случайные образцы выбора вектора в новом векторе (заменить должно быть FALSE, потому что только 1 в 4-х элементов должна быть ИСТИНА).

Какую функцию выбрать? Мне не разрешено использовать for-loops.

+0

Это то, что 'rep' делает, он повторяет ввод несколько раз (функция образца вызывается один раз, он возвращает вектор, который повторяется n раз по rep). Чтобы выполнить sample() несколько раз, вы можете использовать lapply/sapply или replicate. – digEmAll

+0

Что значит «* Мне не разрешено использовать for-loop *»? Определите цикл for. –

ответ

1

Вы можете использовать replicate. Он возвращает матрицу, которую вы затем можете превратить в вектор.

choice <- c(TRUE, FALSE, FALSE, FALSE) 
n <- 3 
set.seed(42) # for reproducibility 
as.vector(replicate(n, sample(choice, size = 4, replace=FALSE))) 
#[1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE 
Смежные вопросы