#r #random #sample
#r #Случайный #пример
Вопрос:
Попытка запустить следующий rgeom 500 раз и сохранить среднее и sd для каждой репликации.
rgeom(100, prob = .2)
до сих пор у меня:
geom_means = rep(NA, 500)
geom_sd = rep(NA, 500)
X_geom500 <- replicate(500, {
samp <- rgeom(100, prob = .2)
geom_means = round(mean(samp),2)
})
X_geom500_sd <- replicate(500, {
samp <- rgeom(100, prob = .2)
round(sd(samp),2)
})
Я могу получить вектор из 500 средних и 500 sd, если я выполняю код отдельно, но я не думаю, что они совпадают. Я попытался создать цикл for для хранения средних и SD для каждой итерации, но я не думаю, что это сработало правильно.
for i in range(1:500):
sample[i] <- rgeom(100, prob = .2)
geom_means[i] <- mean(sample[i])
geom_sd[i] <- sd(sample[i])
Ответ №1:
Вы можете получить как среднее, так и sd из каждой репликации:
set.seed(123)
n_rep <- 5
samp_geom <- function(n, prob) {
samp <- rgeom(n, prob)
return(list(mean = round(mean(samp), 2), sd = round(sd(samp, 2))))
}
replicate(n_rep, samp_geom(100, .2))
[,1] [,2] [,3] [,4] [,5]
mean 3.78 3.64 4.09 3.68 3.73
sd 4 4 5 5 4
Сохраните результирующие значения в отдельных векторах следующим образом:
geom_means <- unlist(samps["mean", ])
geom_means
# [1] 3.78 3.64 4.09 3.68 3.73
geom_sd <- unlist(samps["sd", ])
geom_sd
# [1] 4 4 5 5 4
Комментарии:
1. спасибо @andrew_reece. Проблема в том, что мне нужны сохраненные векторы каждого среднего и sd, а не просто их список. В конечном итоге мне нужно создать гистограмму средних значений и вычислить ожидаемое значение выборок.
2. Я не уверен, что вы подразумеваете под «сохраненными векторами», можете ли вы обновить свой пост с помощью какого-либо примера ожидаемого результата (по крайней мере, формата)?
3. извините. Я имею в виду, что должно быть значение geom_means = среднее значение каждой репликации geom. Затем значение geom_sd = sd для каждой репликации geom. Таким образом, я могу поместить каждый список значений в таблицу или матрицу.
4. Хорошо — я обновлен, но не уверен, что вы это имеете в виду? Он просто извлекает векторы из
replicate()
выходных данных и сохраняет их в отдельных переменных … не уверен, что я что-то упускаю.