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
  • : 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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *