Как масштабировать значения от 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.

Эта функция использовала следующую формулу для масштабирования каждого значения:

  • Масштабированное значение = (значение – минимальное значение) / (максимальное значение – минимальное значение)

Например, масштабированное значение продаж магазина А рассчитывалось следующим образом:

  • Масштабированное значение = (12–12)/(77–12) = 0/65 = 0 .

Аналогично, текущая стоимость продаж магазина B была рассчитана следующим образом:

  • Масштабированное значение = (24–12)/(77–12) = 12/65 = 0,1846 .

И так далее.

Пример 2. Масштабируйте значения от 0 до 1 с помощью пакета Scales.

Следующий код показывает, как использовать функцию rescale() пакета Scales в R для масштабирования значений в столбце продаж фрейма данных в диапазоне от 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *