Як центрувати дані в r (з прикладами)
Центрування набору даних означає віднімання середнього значення кожного окремого спостереження в наборі даних.
Наприклад, припустимо, що ми маємо такий набір даних:
Виявляється, що середнє значення дорівнює 14. Отже, щоб центрувати цей набір даних, ми б відняли 14 від кожного окремого спостереження:
Зауважте, що середнє значення центрованого набору даних дорівнює нулю.
Цей підручник містить кілька прикладів того, як центрувати дані в R.
Приклад 1: центрування значень вектора
Наступний код показує, як використовувати базову функцію R scale() для центрування значень у векторі:
#createvector data <- c(4, 6, 9, 13, 14, 17, 18, 19, 19, 21) #subtract the mean value from each observation in the vector scale(data, scale= FALSE ) [,1] [1,] -10 [2,] -8 [3,] -5 [4,] -1 [5,] 0 [6,] 3 [7,] 4 [8,] 5 [9,] 5 [10,] 7 attr(,"scaled:center") [1] 14
Отримані значення є центрованими значеннями набору даних. Функція scale() також повідомляє нам, що середнє значення набору даних становить 14.
Зауважте, що функція scale() за умовчанням віднімає середнє значення з кожного окремого спостереження, а потім ділить його на стандартне відхилення.
Вказуючи scale=FALSE, ми повідомляємо R не ділити на стандартне відхилення.
Приклад 2: Центрування стовпців у фреймі даних
У наведеному нижче коді показано, як використовувати функцію sapply() і функцію scale() бази даних R для центрування значень кожного стовпця кадру даних:
#create data frame df <- data.frame(x = c(1, 4, 5, 6, 6, 8, 9), y = c(7, 7, 8, 8, 8, 9, 12), z = c(3, 3, 4, 4, 6, 7, 7)) #center each column in the data frame df_new <- sapply(df, function (x) scale(x, scale= FALSE )) #display data frame df_new X Y Z [1,] -4.5714286 -1.4285714 -1.8571429 [2,] -1.5714286 -1.4285714 -1.8571429 [3,] -0.5714286 -0.4285714 -0.8571429 [4,] 0.4285714 -0.4285714 -0.8571429 [5,] 0.4285714 -0.4285714 1.1428571 [6,] 2.4285714 0.5714286 2.1428571 [7,] 3.4285714 3.5714286 2.1428571
Ми можемо перевірити, що середнє значення кожного стовпця в новому кадрі даних дорівнює нулю за допомогою функції colMeans() :
colMeans(df_new) xyz 2.537653e-16 -2.537653e-16 3.806479e-16
Значення показані в науковому позначенні, але кожне значення по суті дорівнює нулю.
Додаткові ресурси
Як усереднити стовпці в R
Як підсумувати певні стовпці в R
Як видалити викиди з кількох стовпців у R