Як використовувати функцію scale() у r (з прикладами)
Функцію scale() в R можна використовувати для масштабування значень у векторі, матриці або кадрі даних.
Ця функція використовує такий базовий синтаксис:
scale(x, center = TRUE , scale = TRUE )
золото:
- x : назва об’єкта для масштабування
- center : чи віднімати середнє під час масштабування. Типовим значенням є TRUE.
- scale : чи ділити на стандартне відхилення під час масштабування. Типовим значенням є TRUE.
Ця функція використовує таку формулу для обчислення масштабованих значень:
масштабований x = ( вихідний 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