Simulez Rnorm pour de nombreuses observations en utilisant différentes valeurs moyennes et Sd dans R

Jinku Hu 23 janvier 2022
  1. Utilisez la fonction Map pour simuler rnorm pour de nombreuses observations dans R
  2. Utilisez la fonction apply pour simuler rnorm pour de nombreuses observations dans R
Simulez Rnorm pour de nombreuses observations en utilisant différentes valeurs moyennes et Sd 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
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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