2017-10-05 5 views

Répondre

1

d'abord, construire un vecteur décrivant cette distribution de probabilité, puis utilisez l'échantillon:

distribution <- c(2, 4, 4, rep(5, 7), rep(6, 14), rep(7, 29), 
       rep(8, 23), rep(9, 7), rep(10, 4), rep(11, 3)) 
sample(distribution, 1000, replace=TRUE) 

je suis parti après 11 valeurs hors et n'a probablement pas lu toutes les valeurs exactement, mais vous pouvez voir l'idée. Le vecteur de distribution peut être plus facile à produire en fonction du format, vos données sont maintenant.

1

La fonction importante est sample. Vous pouvez spécifier un argument supplémentaire prob à sample qui spécifie les probabilités pour chaque élément. Par exemple,

sample(1:22,1000,replace=TRUE,prob=c(
    0,1,0,3,7,14,30,24,5,3,3,2,4,3,1,2,3,2,2,2,1,0 
) 

(remplacez cette chaîne de nombres par la hauteur de vos barres). L'argument prob ne doit pas être additionné à un, R le renormalisera pour vous. R peut générer un avertissement indiquant qu'il utilise la "Méthode Alias ​​de Walker" et les résultats ne sont pas comparables aux anciennes versions de R. Cela est normal, et il n'y a rien à craindre.