r语言中如何实现数据标准化(每一列的值除以该列均值)?

Python019

r语言中如何实现数据标准化(每一列的值除以该列均值)?,第1张

使用apply函数apply(mat, 2, function(x)x/(mean(x)))

测试运行结果:

>ma <- matrix(c(1:4, 1, 6:8), nrow = 2)

>ma

[,1] [,2] [,3] [,4]

[1,]1317

[2,]2468

>apply(ma, 2, function(x)x/(mean(x)))

[,1] [,2] [,3] [,4]

[1,] 0.6666667 0.8571429 0.2857143 0.9333333

[2,] 1.3333333 1.1428571 1.7142857 1.0666667

apply函数参数帮助。

apply(X, MARGIN, FUN, ...)

Arguments

X

an array, including a matrix.

MARGIN

a vector giving the subscripts which the function will be applied over. E.g., for a matrix 1 indicates rows, 2 indicates columns, c(1, 2) indicates rows and columns. Where X has named dimnames, it can be a character vector selecting dimension names.

FUN

the function to be applied: see ‘Details’. In the case of functions like +, %*%, etc., the function name must be backquoted or quoted.

...

optional arguments to FUN.

数据准备

统计概念学习。

(1)当观测值为奇数时,(n+1)/2位置的观测值即为中位数。

(2)当观测值个数为偶数时,n/2和n/2 + 1位置的两个观测值的平均数为中位数。

数据的标准化

数据的标准化是指将数据按照比例缩放,使之落入一个特定的区间。

数据的中心化:数据集中的各项数据减去数据集的均值。 中心化公式:

数据的标准化:中心化之后的数据再除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差。经过该方法处理的数据的均值是0,标准差是1。 标准化公式:

其中,x为观测者, 为平均值,S为标准差。

scale(x, center = TRUE, scale = TRUE)

x:用于标准化的数据,

center=T:表示数据中心化,

scale=T:表示数据标准化。

默认情况下,center=TRUE,scale=TRUE,scale()函数首先把一组数的每个数都减去这组数的平均值,然后除以这组数的均方根。

如果scale=TRUE,而center=FALSE,那么,scale()函数不会把一组数中的每个数减去平均值,而直接除以这组数据的均方根。

参考资料:

安装完毕R语言,新建属于自己的R变成文件夹,然后 File ->Change Dir..,设置成自己的工作文件,自己工作空间将都会产生在这个文件夹下。2 /5 然后Files - >New Script,打开新的脚本编辑,在这里键入自己代码,编辑。在...