2014-02-04 4 views
4

Я пытаюсь создать список 1000 записей длиной, где каждая запись списка представляет собой случайный вектор. В этом случае вектор должен быть 10 целыми числами, выбранными из целых чисел от 1 до 100. Я хочу избежать этого в цикле.Создание списка случайных векторов в R

Если я запускаю следующее, это не образец снова, но только повторяет образец во всех 1000 записей в списке:

list.of.samples <- rep(list(sample(1:100,size=10)),1000) 

Есть простой способ, что я пропускаю векторизовать поколение эти 1000 образцов и сохранить их в списке?

ответ

7

В подобных случаях, я часто использую replicate функцию:

list.of.samples <- replicate(1000, sample(1:100,size=10), simplify=FALSE) 

Он неоднократно оценивает свой второй аргумент. Значение simplify=FALSE означает, что вы возвращаете список, а не массив.

2

rep повторит все, что предоставляется. lapply должен делать то, что вы хотите.

list.of.samples = lapply(1:1000, function(x) sample(1:100,size=10)) 
Смежные вопросы