Como usar a função scale() em r (com exemplos)
A função scale() em R pode ser usada para dimensionar valores em um vetor, matriz ou quadro de dados.
Esta função usa a seguinte sintaxe básica:
scale(x, center = TRUE , scale = TRUE )
Ouro:
- x : Nome do objeto a ser dimensionado
- centro : se deve subtrair a média ao dimensionar. O padrão é verdadeiro.
- escala : se deve ser dividido pelo desvio padrão ao dimensionar. O padrão é verdadeiro.
Esta função usa a seguinte fórmula para calcular valores em escala:
escalado x = ( original x – x̄) / s
Ouro:
- x original : O valor x original
- x̄ : A amostra significa
- s : o desvio padrão da amostra
Isso também é conhecido como normalização de dados, que simplesmente converte cada valor original em um z-score .
Os exemplos a seguir mostram como usar esta função na prática.
Exemplo 1: Escalar valores em um vetor
Suponha que temos o seguinte vetor de valores em R:
#define vector of values x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) #view mean and standard deviation of values mean(x) [1] 5 sd(x) [1] 2.738613
O código a seguir mostra como dimensionar valores vetoriais usando a função scale() :
#scale the values of x x_scaled <- scale(x) #view scaled values x_scaled [,1] [1,] -1.4605935 [2,] -1.0954451 [3,] -0.7302967 [4,] -0.3651484 [5,] 0.0000000 [6,] 0.3651484 [7,] 0.7302967 [8,] 1.0954451 [9,] 1.4605935
Aqui está como cada valor escalado foi calculado:
- Valor 1: (1 – 5) / 2,738613 = -1,46
- Valor 2: (2 – 5) / 2,738613 = -1,09
- Valor 3: (3 – 5) / 2,738613 = -0,73
E assim por diante.
Observe que se especificarmos scale=FALSE então a função não seria dividida pelo desvio padrão ao dimensionar:
#scale the values of x but don't divide by standard deviation x_scaled <- scale(x, scale = FALSE ) #view scaled values x_scaled [,1] [1,] -4 [2,] -3 [3,] -2 [4,] -1 [5,] 0 [6,] 1 [7,] 2 [8,] 3 [9,] 4
Aqui está como cada valor escalado foi calculado:
- Valor 1: 1 – 5 = -4
- Valor 2: 2 – 5 = -3
- Valor 3: 3 – 5 = -2
E assim por diante.
Exemplo 2: Dimensionar valores de coluna em um quadro de dados
Na maioria das vezes, usamos a função scale() quando queremos dimensionar os valores de várias colunas em um quadro de dados, de modo que cada coluna tenha uma média de 0 e um desvio padrão de 1.
Por exemplo, suponha que temos o seguinte quadro de dados em R:
#create data frame df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9), y=c(10, 20, 30, 40, 50, 60, 70, 80, 90)) #view data frame df xy 1 1 10 2 2 20 3 3 30 4 4 40 5 5 50 6 6 60 7 7 70 8 8 80 9 9 90
Observe que o intervalo de valores da variável y é muito maior que o intervalo de valores da variável x.
Podemos usar a função scale() para dimensionar os valores nas duas colunas de forma que os valores escalonados de x e y tenham uma média de 0 e um desvio padrão de 1:
#scale values in each column of data frame df_scaled <- scale(df) #view scaled data frame df_scaled xy [1,] -1.4605935 -1.4605935 [2,] -1.0954451 -1.0954451 [3,] -0.7302967 -0.7302967 [4,] -0.3651484 -0.3651484 [5,] 0.0000000 0.0000000 [6,] 0.3651484 0.3651484 [7,] 0.7302967 0.7302967 [8,] 1.0954451 1.0954451 [9,] 1.4605935 1.4605935
As colunas xey agora têm média 0 e desvio padrão 1.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em R:
Como normalizar dados em R
Como padronizar dados em R
Como calcular a média das colunas em R