Можно ли сгенерировать выборку из 10 человек из популяции и повторить эту выборку 1000 раз? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь случайным образом выбрать 10 человек из популяции и повторить 1000 раз. Это возможно? Вот мой код, и я не совсем уверен, что я на правильном пути. Я получаю сообщение об ошибке «Количество заменяемых элементов не кратно длине замены».

Вот мой код:

B<-1000
for (i in 1:B){

  FR3_Acropora_Sample[i]<-(sample(FR3_Acropora$Ratio,size=10,replace=TRUE))

}

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

Рассмотрим replicate (обёртка до sapply):

# MATRIX
sample_matrix <- replicate(B, sample(FR3_Acropora$Ratio, size=10, replace=TRUE))

# LIST
sample_list <- replicate(B, sample(FR3_Acropora$Ratio, size=10, replace=TRUE),
                         simplify = FALSE)
1 голос
/ 21 апреля 2020

Я полагаю, что вы можете выполнить sh это следующим образом. Я создаю набор данных с номерами от 1 до 50 - вы, конечно, пропустите этот шаг. Я инициализирую вектор списков длиной 100. Я l oop от 1 до 100 и выбираю случайную выборку для назначения каждому пустому пространству в моем векторе. Затем я могу получить доступ к любому образцу с помощью sampleList[[x]], где x - любое число от 1 до 100.

x <- c(1:50)

sampleList <- vector(mode="list", length=100)

for (i in 1:100) {
sampleList[[i]] = sample(x, size = 10, replace = TRUE)
}

Используя ваши имена переменных, это будет выглядеть так:

B<-1000
FR3_Acropora_Sample <- vector(mode="list", length=1000)
for (i in 1:B){

  FR3_Acropora_Sample[[i]]=sample(FR3_Acropora$Ratio,size=10,replace=TRUE)

}
...