如何在 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:数据框中的中心列

下面的代码展示了如何使用R数据库的sapply()函数和scale()函数来将数据框的每一列的值居中:

 #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 中的多列中删除异常值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注