Simulieren Sie Rnorm für viele Beobachtungen mit unterschiedlichen Mittel- und Sd-Werten in R

Jinku Hu 30 Januar 2023
  1. Verwenden Sie die Funktion Map, um rnorm für viele Beobachtungen in R . zu simulieren
  2. Verwenden Sie die Funktion apply, um rnorm für viele Beobachtungen in R . zu simulieren
Simulieren Sie Rnorm für viele Beobachtungen mit unterschiedlichen Mittel- und Sd-Werten in R

Dieser Artikel demonstriert mehrere Methoden zur Simulation von rnorm für viele Beobachtungen unter Verwendung verschiedener mean- und sd-Werte in R.

Verwenden Sie die Funktion Map, um rnorm für viele Beobachtungen in R . zu simulieren

Die Funktion rnorm wird verwendet, um zufällige Abweichungen für die Normalverteilung zu erzeugen, wenn der Standardwert mean gleich 0 ist und die Standardabweichung (sd) 1 ist. Beachten Sie, dass letztere Parameter optional als Vektor von Elementen übergeben werden können. In diesem Fall haben wir vordefinierte mean- und sd-Werte als Teil des DataFrames gespeichert. Die Funktion Map wendet das angegebene Funktionsobjekt auf die entsprechenden Elemente mehrerer Vektoren an. Es verwendet das Funktionsobjekt als erstes Argument und Vektorobjekte als die folgenden Argumente. Beachten Sie, dass die Anzahl der Vektorobjekte den obligatorischen Parametern des angegebenen Funktionsobjekts entsprechen sollte. Im folgenden Beispiel generieren wir 5 Abweichungen für jedes data-Element. Außerdem verwenden wir die Funktion set.seed, um den Seed-Wert für reproduzierbare Ergebnisse zwischen mehreren Programmausführungen anzugeben. Die Funktion Map gibt ein list-Objekt zurück.

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

Ausgabe:

[[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

Verwenden Sie die Funktion apply, um rnorm für viele Beobachtungen in R . zu simulieren

Alternativ können wir mit der Funktion apply rnorm für verschiedene Zeilen im DataFrame simulieren. Die Funktion apply wird im Allgemeinen verwendet, um Werte aus der Anwendung des angegebenen Funktionsobjekts auf die angegebenen Ränder eines Arrays oder einer Matrix zurückzugeben. Ränder werden mit dem zweiten Parameter namens MARGIN angegeben. Das Argument MARGIN kann den Wert 1 haben, was die auf die Zeilen der Matrix anzuwendende Funktion angibt. Andererseits bezeichnet der Wert 2 die Spalten der Matrix und c(1,2) bezeichnet sowohl Zeilen als auch Spalten der Matrix. Das erste Argument der Funktion apply kann ein Array oder eine Matrix sein. Beachten Sie jedoch, dass, wenn das übergebene Objekt kein Array ist, es mit den Funktionen as.matrix oder as.array zum Array-Typ gezwungen wird.

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)

Ausgabe:

         [,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
Autor: 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

Verwandter Artikel - R Distribution