Simule Rnorm para muchas observaciones utilizando diferentes valores medios y Sd en R
-
Utilice la función
Map
para simularrnorm
para muchas observaciones en R -
Utilice la función
apply
para simularrnorm
para muchas observaciones en R
Este artículo demostrará múltiples métodos para simular rnorm
para muchas observaciones utilizando diferentes valores de media y sd
en R.
Utilice la función Map
para simular rnorm
para muchas observaciones en R
La función rnorm
se utiliza para generar desviaciones aleatorias para la distribución normal dado que la media
predeterminada es igual a 0
y la desviación estándar (sd
) es 1
. Tenga en cuenta que los últimos parámetros se pueden pasar opcionalmente como vector de elementos. En este caso, almacenamos valores predefinidos de media
y sd
como parte del DataFrame. La función Map
aplica el objeto de función dado a los elementos correspondientes de múltiples vectores. Toma el objeto de función como primer argumento y los objetos vectoriales como los siguientes argumentos. Tenga en cuenta que el número de objetos vectoriales debe ser igual a los parámetros obligatorios del objeto de función dado. En el siguiente ejemplo, generamos 5
desviaciones para cada elemento de data
. Además, usamos la función set.seed
para especificar el valor de semilla para obtener resultados reproducibles entre múltiples ejecuciones de programas. La función Map
devuelve un objeto 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
Producción :
[[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
Utilice la función apply
para simular rnorm
para muchas observaciones en R
Alternativamente, podemos usar la función apply
para simular rnorm
para diferentes filas en el DataFrame. La función apply
se usa generalmente para devolver valores de la aplicación del objeto de función dado a los márgenes especificados de un array o un array. Los márgenes se especifican mediante el segundo parámetro denominado MARGEN
. El argumento MARGIN
puede tener el valor de 1
, que indica la función que se aplicará a las filas del array. Por otro lado, el valor 2
denota las columnas del array y c(1,2)
indica tanto las filas como las columnas del array. El primer argumento de la función apply
puede ser un array o un array. Sin embargo, tenga en cuenta que si el objeto pasado no es un array, se convierte en el tipo de array mediante las funciones 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)
Producción :
[,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