#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