Simulieren Sie Rnorm für viele Beobachtungen mit unterschiedlichen Mittel- und Sd-Werten in R
-
Verwenden Sie die Funktion
Map
, umrnorm
für viele Beobachtungen in R . zu simulieren -
Verwenden Sie die Funktion
apply
, umrnorm
für viele Beobachtungen in R . zu simulieren
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
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