Como escalar valores entre 0 e 1 em r


Você pode usar os seguintes métodos para dimensionar os valores de uma variável entre 0 e 1 em R:

Método 1: use a base R

 #define function to scale values between 0 and 1
scale_values <- function (x){(x-min(x))/(max(x)-min(x))}

x_scaled <- rescale(x)

Método 2: Use o pacote de escalas

 library (scales)

x_scaled <- rescale(x)

Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (store=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 sales=c(12, 24, 23, 59, 45, 34, 50, 77))

#view data frame
df

  blind sales
1 to 12
2 B 24
3 C 23
4 D 59
5 E 45
6 F 34
7 G 50
8:77 a.m.

Exemplo 1: Escalar valores entre 0 e 1 usando base R

O código a seguir mostra como definir uma função personalizada na base R e, em seguida, usar a função para dimensionar os valores na coluna de vendas do quadro de dados entre 0 e 1:

 #define function to scale values between 0 and 1
scale_values <- function (x){(x-min(x))/(max(x)-min(x))}

#scale values in 'sales' column to be between 0 and 1
df$sales <- scale_values(df$sales)

#view updated data frame
df

  blind sales
1 A 0.0000000
2 B 0.1846154
3 C 0.1692308
4 D 0.7230769
5 E 0.5076923
6 F 0.3384615
7G 0.5846154
8 H 1.0000000

Cada um dos valores da coluna Vendas agora está dimensionado entre 0 e 1.

Esta função usou a seguinte fórmula para dimensionar cada um dos valores:

  • Valor escalonado = (valor – valor mínimo) / (valor máximo – valor mínimo)

Por exemplo, o valor escalonado para as vendas da loja A foi calculado da seguinte forma:

  • Valor escalonado = (12 – 12) / (77 – 12) = 0/65 = 0 .

Da mesma forma, o valor presente das vendas da loja B foi calculado da seguinte forma:

  • Valor em escala = (24 – 12) / (77 – 12) = 12/65 = 0,1846 .

E assim por diante.

Exemplo 2: Escalar valores entre 0 e 1 usando o pacote Scales

O código a seguir mostra como usar a função rescale() do pacote de escalas em R para dimensionar os valores na coluna de vendas do quadro de dados para ficarem entre 0 e 1:

 library (scales)

#scale values in 'sales' column to be between 0 and 1
df$sales <- rescale(df$sales)

#view updated data frame
df

  blind sales
1 A 0.0000000
2 B 0.1846154
3 C 0.1692308
4 D 0.7230769
5 E 0.5076923
6 F 0.3384615
7G 0.5846154
8 H 1.0000000

Cada um dos valores da coluna Vendas agora está dimensionado entre 0 e 1.

Observe que esses valores em escala correspondem àqueles calculados usando o método R base.

Observe também que a função rescale() aceita um argumento to que especifica o intervalo de valores escalonados.

Por exemplo, você pode usar a seguinte sintaxe para dimensionar os valores na coluna de vendas entre 0 e 100:

 library (scales)

#scale values in 'sales' column to be between 0 and 100
df$sales <- rescale(df$sales, to=c(0,100))

#view updated data frame
df

  blind sales
1 A 0.00000
2 B 18.46154
3 C 16.92308
4 D 72.30769
5 E 50.76923
6 F 33.84615
7G 58.46154
8 A.M. 100.00000

Cada um dos valores da coluna Vendas agora está dimensionado entre 0 e 100.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como calcular uma média aparada em R
Como calcular uma média ponderada em R
Como calcular o valor máximo em cada linha em R

Add a Comment

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