Я хотел бы иметь тот же результат этого кода с помощью replicate
функцииR, как я могу получить одинаковые результаты, используя функцию «для», чтобы получить результат из «replicate»?
set.seed(1)
n <- 100
sides <- 6
p <- 1/sides
zs <- replicate(10000,{
x <- sample(1:sides,n,replace=TRUE)
(mean(x==6) - p)/sqrt(p*(1-p)/n)
})
с помощью for
функции. Код, который я пробовал, выглядит следующим образом.
n<-10000
side<-6
p<-1/side
set.seed(1)
for(i in 1:n){
z<-vector("numeric", n)
x<-sample(1:side, 100, replace=TRUE)
z[i]<-mean(x==6)
}
Но код выше не работает.
Я пытаюсь понять, почему вы хотите использовать 'for', когда векторизованный (и, следовательно, обычно лучший) способ отлично работает ...? – LAP
Возьмите 'z <-vector (" numeric ", n)' из цикла. В текущем случае на каждой итерации z инициализируется (снова) – etienne