Как использовать функцию scale() в r (с примерами)


Функцию Scale() в R можно использовать для масштабирования значений в векторе, матрице или фрейме данных.

Эта функция использует следующий базовый синтаксис:

 scale(x, center = TRUE , scale = TRUE )

Золото:

  • x : Имя объекта для масштабирования.
  • center : вычитать ли среднее значение при масштабировании. По умолчанию установлено значение ИСТИНА.
  • масштаб : следует ли делить на стандартное отклонение при масштабировании. По умолчанию установлено значение ИСТИНА.

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

масштабированный x = ( исходный x – x̄) / с

Золото:

  • original x : Исходное значение x.
  • : Образец означает
  • s : стандартное отклонение выборки

Это также известно как нормализация данных, при которой каждое исходное значение просто преобразуется в z-показатель .

Следующие примеры показывают, как использовать эту функцию на практике.

Пример 1: масштабирование значений в векторе

Предположим, у нас есть следующий вектор значений в 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

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

Вот как рассчитывалось каждое масштабированное значение:

  • Значение 1: (1 – 5) / 2,738613 = -1,46.
  • Значение 2: (2 – 5) / 2,738613 = -1,09
  • Значение 3: (3 – 5) / 2,738613 = -0,73

И так далее.

Обратите внимание: если мы укажем Scale=FALSE , то функция не будет делить на стандартное отклонение при масштабировании:

 #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

Вот как рассчитывалось каждое масштабированное значение:

  • Значение 1: 1 – 5 = -4
  • Значение 2: 2 – 5 = -3
  • Значение 3: 3 – 5 = -2

И так далее.

Пример 2. Масштабирование значений столбцов во фрейме данных

Чаще всего мы используем функцию Scale(), когда хотим масштабировать значения нескольких столбцов во фрейме данных так, чтобы каждый столбец имел среднее значение 0 и стандартное отклонение 1.

Например, предположим, что у нас есть следующий фрейм данных в 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

Обратите внимание, что диапазон значений переменной y намного больше диапазона значений переменной x.

Мы можем использовать функцию Scale() для масштабирования значений в двух столбцах так, чтобы масштабированные значения x и y имели среднее значение 0 и стандартное отклонение 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

Столбцы x и y теперь имеют среднее значение 0 и стандартное отклонение 1.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как нормализовать данные в R
Как стандартизировать данные в R
Как усреднить по столбцам в R

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

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