Simulez Rnorm pour de nombreuses observations en utilisant différentes valeurs moyennes et Sd dans R
-
Utilisez la fonction
Map
pour simulerrnorm
pour de nombreuses observations dans R -
Utilisez la fonction
apply
pour simulerrnorm
pour de nombreuses observations dans R
Cet article démontrera plusieurs méthodes de simulation de rnorm
pour de nombreuses observations en utilisant différentes valeurs moyenne et sd
dans R.
Utilisez la fonction Map
pour simuler rnorm
pour de nombreuses observations dans R
La fonction rnorm
est utilisée pour générer des écarts aléatoires pour la distribution normale étant donné que la moyenne par défaut est égale à 0
et l’écart type (sd
) est 1
. Notez que ces derniers paramètres peuvent être passés facultativement en tant que vecteur d’éléments. Dans ce cas, nous avons stocké des valeurs moyenne et sd
prédéfinies dans le cadre de la DataFrame. La fonction Map
applique l’objet de fonction donné aux éléments correspondants de plusieurs vecteurs. Il prend l’objet fonction comme premier argument et les objets vectoriels comme arguments suivants. Notez que le nombre d’objets vectoriels doit être égal aux paramètres obligatoires de l’objet fonction donné. Dans l’exemple suivant, nous générons des écarts 5
pour chaque élément data
. De plus, nous utilisons la fonction set.seed
pour spécifier la valeur de départ pour des résultats reproductibles entre plusieurs exécutions de programme. La fonction Map
renvoie un objet list
.
set.seed(123)
df1 <- data.frame(
data = sample(1:64, 4),
mean = sample(1:64, 4),
sd = c(1, 4, 8, 20)
)
n <- 5
func1 <- function(x, y) rnorm(n, mean = x, sd = y)
list1 <- Map(func1, df1$mean, df1$sd)
list1
Production:
[[1]]
[1] 3.129288 4.715065 3.460916 1.734939 2.313147
[[2]]
[1] 40.21735 46.89633 43.43926 43.60309 42.44273
[[3]]
[1] 45.55327 64.29531 53.98280 34.26706 55.61085
[[4]]
[1] 44.54417 32.64353 49.64050 33.47991 39.42218
Utilisez la fonction apply
pour simuler rnorm
pour de nombreuses observations dans R
Alternativement, nous pouvons utiliser la fonction apply
pour simuler rnorm
pour différentes lignes du bloc de données. La fonction apply
est généralement utilisée pour renvoyer les valeurs de l’application de l’objet fonction donné aux marges spécifiées d’un tableau ou d’une matrice. Les marges sont spécifiées à l’aide du deuxième paramètre nommé MARGIN
. L’argument MARGE
peut avoir la valeur 1
, ce qui indique la fonction à appliquer aux lignes de la matrice. D’autre part, la valeur 2
désigne les colonnes de la matrice et c(1,2)
indique à la fois - les lignes et les colonnes de la matrice. Le premier argument de la fonction apply
peut être un tableau ou une matrice. Notez, cependant, que si l’objet passé n’est pas un tableau, il est contraint au type de tableau en utilisant les fonctions as.matrix
ou as.array
.
set.seed(123)
df1 <- data.frame(
data = sample(1:64, 4),
mean = sample(1:64, 4),
sd = c(1, 4, 8, 20)
)
n <- 5
func1 <- function(x) rnorm(n, mean = x[1], sd = x[2])
apply(df1[-1], 1, FUN = func1)
Production:
[,1] [,2] [,3] [,4]
[1,] 3.129288 40.21735 45.55327 44.54417
[2,] 4.715065 46.89633 64.29531 32.64353
[3,] 3.460916 43.43926 53.98280 49.64050
[4,] 1.734939 43.60309 34.26706 33.47991
[5,] 2.313147 42.44273 55.61085 39.42218
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook