Normalizar los valores en el array R
-
Utilice la función de
sweep
para barrer matrices en R -
Utilice la función
scale
para normalizar los valores en el array R
Este artículo presentará cómo normalizar los valores en un array R.
Utilice la función de sweep
para barrer matrices en R
La función de sweep
se utiliza para barrer la estadística de resumen del array. Toma el array de entrada como primer argumento y la estadística de resumen como tercer argumento. El segundo argumento de la función representa el vector de índices que deben corresponder a los elementos del tercer vector de argumento. El cuarto argumento denota la función que se usa para barrer el array. En este caso, pasamos el operador de división, que se puede proporcionar con la notación entre comillas - "/"
. La función devuelve el array con la misma forma que el array de entrada. Utilizamos la función colSums
para calcular las sumas de las columnas del array de entrada dada y pasar el resultado como la estadística de resumen.
require(stats)
v1 <- c(1.1, 1.2, 4.3, 1.3, 3.9, 2.1, 5.3, 3.8, 7.7, 8.8, 6.7, 2.6)
m1 <- matrix(v1, ncol = 4)
sweep(m1, 2, colSums(m1), FUN = "/")
Producción :
[,1] [,2] [,3] [,4]
[1,] 0.1666667 0.1780822 0.3154762 0.4861878
[2,] 0.1818182 0.5342466 0.2261905 0.3701657
[3,] 0.6515152 0.2876712 0.4583333 0.1436464
Tenga en cuenta que, la función sweep
también puede con el valor predeterminado del parámetro de función. Si el usuario no lo proporciona explícitamente, se supone que la función es el operador de resta. Tenga en cuenta que cuando se pasa el objeto de función personalizada, debe tener dos argumentos. El siguiente fragmento de código resta la mediana de cada columna de los elementos de la columna correspondiente del array.
require(stats)
v1 <- c(1.1, 1.2, 4.3, 1.3, 3.9, 2.1, 5.3, 3.8, 7.7, 8.8, 6.7, 2.6)
m1 <- matrix(v1, ncol = 4)
med.att <- apply(m1, 2, median)
sweep(m1, 2, med.att)
Producción :
[,1] [,2] [,3] [,4]
[1,] -0.1 -0.8 0.0 2.1
[2,] 0.0 1.8 -1.5 0.0
[3,] 3.1 0.0 2.4 -4.1
Utilice la función scale
para normalizar los valores en el array R
Otra función útil para la normalización de datos matriciales es scale
, que divide cada columna del array de entrada por el valor correspondiente del tercer argumento denominado - scale
. Tenga en cuenta que scale
toma el argumento center
que se utiliza para el centrado de columnas (se pueden encontrar más detalles en esta página). En este caso, asignamos FALSE
al último argumento, lo que indica que no es necesario centrar las columnas. La función colSums
se utiliza para calcular las sumas de cada columna del array de entrada y pasarla como argumento scale
.
require(stats)
v1 <- c(1.1, 1.2, 4.3, 1.3, 3.9, 2.1, 5.3, 3.8, 7.7, 8.8, 6.7, 2.6)
m1 <- matrix(v1, ncol = 4)
c1 <- colSums(m1)
scale(m1, center = FALSE, scale = c1)
Producción :
[,1] [,2] [,3] [,4]
[1,] 0.1666667 0.1780822 0.3154762 0.4861878
[2,] 0.1818182 0.5342466 0.2261905 0.3701657
[3,] 0.6515152 0.2876712 0.4583333 0.1436464
attr(,"scaled:scale")
[1] 6.6 7.3 16.8 18.1
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