R中的绝对偏差公式

R中的绝对偏差公式,r,deviation,R,Deviation,我有一个小问题,我想在R studio中对iris(柱的数据平均值)/绝对偏差的代码使用这个公式。这是我的密码 y=iris[,1:4] for(i in 1:4){y[, i] = (iris[,i] - mean(iris[,i]))/sd(iris[,i])} y 但是这个代码是针对[(数据-平均每列)/标准偏差每列]我试图得出[(数据-平均每列)/平均绝对偏差每列]的公式,但是这个代码有一个问题 y=iris[,1:4] for(i in 1:4){y[, i] = (iris[,i]

我有一个小问题,我想在R studio中对iris(柱的数据平均值)/绝对偏差的代码使用这个公式。这是我的密码

y=iris[,1:4]
for(i in 1:4){y[, i] = (iris[,i] - mean(iris[,i]))/sd(iris[,i])}
y
但是这个代码是针对[(数据-平均每列)/标准偏差每列]我试图得出[(数据-平均每列)/平均绝对偏差每列]的公式,但是这个代码有一个问题

y=iris[,1:4]
for(i in 1:4){y[, i] = (iris[,i] - mean(iris[,i]))/meanAD(iris)}
y
我认为没有问题,但它花费了无法计算的mad。

您可以这样做:

(iris[,1:4] - apply(iris[,1:4],2,mean))/apply(iris[,1:4],2,mad)

   # > (iris[,1:4] - apply(iris[,1:4],2,mean))/apply(iris[,1:4],2,mad)
   #     Sepal.Length Sepal.Width  Petal.Length   Petal.Width
   # 1    -0.71624495 -0.13921489 -4.2814103923 -1.9198704978
   # 2     4.14287213  1.73504718 -3.7261867290 -0.9629158557
   # 3     0.50829624 -2.54700558 -1.3263186294 -5.4376802657
   # 4     3.27674035  0.09592757  0.2897098405 -6.4241497669

为什么不直接使用
mad
函数?像这样使用mad(x)?对于虹膜示例:
apply(y,2,mad)
。这会将mad应用于
mad(iris)
中的每一列(1=行,2=列)。您忘记了子集
mad(iris[,i])
。但中值偏差的mad(iris)不是绝对偏差