Simula Rnorm per molte osservazioni utilizzando diversi valori medi e Sd in R
-
Usa la funzione
Map
per simularernorm
per molte osservazioni in R -
Usa la funzione
apply
per simularenorm
per molte osservazioni in R
Questo articolo dimostrerà diversi metodi per simulare rnorm
per molte osservazioni utilizzando diversi valori di media e sd
in R.
Usa la funzione Map
per simulare rnorm
per molte osservazioni in R
La funzione rnorm
viene utilizzata per generare deviazioni casuali per la distribuzione normale dato che la media predefinita è uguale a 0
e la deviazione standard (sd
) è 1
. Si noti che questi ultimi parametri possono essere passati facoltativamente come vettore di elementi. In questo caso, abbiamo memorizzato i valori mean
e sd
predefiniti come parte del frame di dati. La funzione Mappa
applica l’oggetto funzione dato agli elementi corrispondenti di più vettori. Prende l’oggetto funzione come primo argomento e gli oggetti vettoriali come argomenti seguenti. Notare che il numero di oggetti vettoriali dovrebbe essere uguale ai parametri obbligatori dell’oggetto funzione dato. Nell’esempio seguente, generiamo deviazioni 5
per ogni elemento data
. Inoltre, utilizziamo la funzione set.seed
per specificare il valore del seme per risultati riproducibili tra più esecuzioni del programma. La funzione Map
restituisce un oggetto 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
Produzione:
[[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
Usa la funzione apply
per simulare norm
per molte osservazioni in R
In alternativa, possiamo usare la funzione apply
per simulare rnorm
per diverse righe nel frame di dati. La funzione apply
viene generalmente utilizzata per restituire valori dall’applicazione dell’oggetto funzione dato ai margini specificati di un array o di una matrice. I margini vengono specificati utilizzando il secondo parametro denominato MARGIN
. L’argomento MARGIN
può assumere il valore 1
, che indica la funzione da applicare alle righe della matrice. D’altra parte, il valore 2
indica le colonne della matrice e c(1,2)
indica sia le righe che le colonne della matrice. Il primo argomento della funzione apply
può essere un array o una matrice. Nota, tuttavia, se l’oggetto passato non è un array, viene forzato al tipo di array usando le funzioni as.matrix
o 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)
Produzione:
[,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