Bonsoir,

Je souhaite réaliser 20 simulations de lancers de pièce pour un nombre de lancers variant de 10 à 2000 et ensuite représenter les diagrammes en moustache associés.
Je me suis inspiré d'un exemple traitant de cela mais dans mon cas cela ne fonctionne pas.
Voici mon code

pile <- function(nbsim = 20, p = .5, n7 = c(10, 20, 50, 100, 500, 1000, 2000)){
nechant <- rep(n7, each = nbsim)
for(i in 1:nbsim) n71[i] <- sum(sample(c("pile","face"), n7[1], replace = TRUE, prob = c(p,1-p))=="pile")/n7[1]
for(i in 1:nbsim) n72[i] <- sum(sample(c("pile","face"), n7[2], replace = TRUE, prob = c(p,1-p))=="pile")/n7[2]
for(i in 1:nbsim) n73[i] <- sum(sample(c("pile","face"), n7[3], replace = TRUE, prob = c(p,1-p))=="pile")/n7[3]
for(i in 1:nbsim) n74[i] <- sum(sample(c("pile","face"), n7[4], replace = TRUE, prob = c(p,1-p))=="pile")/n7[4]
for(i in 1:nbsim) n75[i] <- sum(sample(c("pile","face"), n7[5], replace = TRUE, prob = c(p,1-p))=="pile")/n7[5]
for(i in 1:nbsim) n76[i] <- sum(sample(c("pile","face"), n7[6], replace = TRUE, prob = c(p,1-p))=="pile")/n7[6]
for(i in 1:nbsim) n77[i] <- sum(sample(c("pile","face"), n7[7], replace = TRUE, prob = c(p,1-p))=="pile")/n7[7]
simfreqar <- c(n71,n72,n73,n74,n75,n76,n77)
#--------------- Affichage des résultats et des graphiques------------
graphics.off()
plot(nechant, simfreqar,
main = "Distributions* des fréquences* des succès")
dev.new()
plot(as.factor(nechant), simfreqar,
xlab = "Échantillons par tailles",
ylab = "Fréquence des succès",
main = "Résumé des distributions*")
}

pile()
L'idée que j'ai eu est la suivante, je crée des vecteurs n71,n72, ...,n77 de longueur 20 qui contiennent la fréquence d'apparition de pile lors de 10, 20,...,2000 lancers.
Ensuite je crée le vecteur final par concaténation de tous mes vecteurs.
Enfin, je représente graphiquement les données brutes puis dans une autre fenêtre les boites à moustaches.

Je me suis inspiré du code suivant qui lui fonctionne :

lgn1 <- function(nbsim = 20, p = .3, n7 = c(10, 20, 50, 100, 500, 1000, 2000)){
nechant <- rep(n7, each = nbsim)
simfreqar <- c(rbinom(nbsim, n7[1], p) / n7[1],
rbinom(nbsim, n7[2], p) / n7[2], rbinom(nbsim, n7[3], p) / n7[3],
rbinom(nbsim, n7[4], p) / n7[4], rbinom(nbsim, n7[5], p) / n7[5],
rbinom(nbsim, n7[6], p) / n7[6], rbinom(nbsim, n7[7], p) / n7[7])
#--------------- Affichage des résultats et des graphiques------------
graphics.off()
plot(nechant, simfreqar,
main = "Distributions* des fréquences* des succès")
dev.new()
plot(as.factor(nechant), simfreqar,
xlab = "Échantillons par tailles",
ylab = "Fréquence des succès",
main = "Résumé des distributions*")
}
J'ai testé des petits bouts de mon programme et cela fonctionne mais lorsque je soumets l'ensemble à R commander il me dit ne pas connaître n71!!

Merci de votre aide et des améliorations éventuelles que vous apporterez.

PS : l'objectif final étant de "montrer" la loi des grands nombres