Как центрировать данные в 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() по умолчанию вычитает среднее значение из каждого отдельного наблюдения, а затем делит его на стандартное отклонение.
Указав масштаб = 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