Як використовувати функцію scale() у r (з прикладами)


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

Ця функція використовує такий базовий синтаксис:

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

золото:

  • x : назва об’єкта для масштабування
  • center : чи віднімати середнє під час масштабування. Типовим значенням є TRUE.
  • scale : чи ділити на стандартне відхилення під час масштабування. Типовим значенням є TRUE.

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

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

золото:

  • оригінальне 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

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

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