Як масштабувати значення від 0 до 1 у r


Щоб масштабувати значення змінної від 0 до 1 у R, можна використовувати такі методи:

Спосіб 1: використовуйте базу 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)

Спосіб 2: Використовуйте пакет ваг

 library (scales)

x_scaled <- rescale(x)

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних у 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.

Приклад 1: шкала значень від 0 до 1 за допомогою основи R

У наступному коді показано, як визначити спеціальну функцію в базовому R, а потім використовувати цю функцію для масштабування значень у стовпці продажів кадру даних від 0 до 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

Кожне зі значень у стовпці «Продажі» тепер має масштаб від 0 до 1.

Ця функція використовувала таку формулу для масштабування кожного значення:

  • Розраховане значення = (значення – мінімальне значення) / (максимальне значення – мінімальне значення)

Наприклад, масштабоване значення для продажів магазину A було розраховано таким чином:

  • Розраховане значення = (12 – 12) / (77 – 12) = 0 / 65 = 0 .

Подібним чином теперішня вартість продажів магазину Б була розрахована таким чином:

  • Розраховане значення = (24 – 12) / (77 – 12) = 12 / 65 = 0,1846 .

І так далі.

Приклад 2: масштабування значень від 0 до 1 за допомогою пакета Scales

У наведеному нижче коді показано, як використовувати функцію rescale() пакета scales у R, щоб масштабувати значення в стовпці sales кадру даних між 0 і 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

Кожне зі значень у стовпці «Продажі» тепер має масштаб від 0 до 1.

Зауважте, що ці масштабовані значення відповідають тим, що розраховані за допомогою методу бази R.

Також зауважте, що функція rescale() приймає аргумент to , який визначає діапазон масштабованих значень.

Наприклад, ви можете використовувати такий синтаксис, щоб масштабувати значення в стовпці продажів від 0 до 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

Кожне зі значень у стовпці «Продажі» тепер має масштаб від 0 до 100.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як обчислити зрізане середнє в R
Як обчислити середньозважену величину в R
Як обчислити максимальне значення в кожному рядку в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *