Формула абсолютного отклонения в R

#r #deviation

#r #отклонение

Вопрос:

У меня небольшая проблема, я хочу внести эту формулу в свой код в 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
  

я думаю, что проблем нет, но это заняло безумие, не может быть вычислено.

Комментарии:

1. Почему бы вам просто не использовать mad функцию?

2. mad (x) вот так?

3. Для вашего примера iris: apply(y, 2, mad) . Это будет применяться mad к каждому столбцу (1 = строки, 2 = столбцы)

4. В mad(iris) вы забываете подмножество mad(iris[, i]) .

5. но mad (iris) для среднего отклонения не означает абсолютное отклонение

Ответ №1:

Вы можете сделать это:

 (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