Как центрировать данные в 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

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

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