2010-08-18 31 views
12

Lorsque j'appelle rnorm en passant une valeur simple comme moyenne, il est évident que ce qui se passe: une valeur est générée à partir de Normal (10,1).Appeler rnorm avec un vecteur de moyennes

y <- rnorm(20, mean=10, sd=1) 

Mais, je vois des exemples d'un vecteur tout étant transmis à rnorm (ou rcauchy, etc ..); dans ce cas, je ne suis pas sûr de ce que la machine R fait vraiment. Par exemple:

a = c(10,22,33,44,5,10,30,22,100,45,97) 
y <- rnorm(a, mean=a, sd=1) 

Des idées?

Répondre

11

Le nombre de nombres aléatoires rnorm génère la longueur de a. De ?rnorm:

n: nombre d'observations. Si 'longueur (n)> 1', la longueur est prise pour être le nombre requis.

Pour voir ce qui se passe quand a est passé à l'argument moyen, il est plus facile si l'on change l'exemple:

a = c(0, 10, 100) 
y = rnorm(a, mean=a, sd=1) 
[1] -0.4853138 9.3630421 99.7536461 

donc nous générons length(a) nombres aléatoires avec moyenne a[i].

+0

Peut-on utiliser rnorm (100) ou quelque chose de similaire pour créer des valeurs uniquement entre 0 et 1? actuellement, il donne des valeurs entre (-1 à 1) –