Добавить столбец с медианными абсолютными отклонениями (MAD) на строку - PullRequest
1 голос
/ 17 апреля 2020

У меня есть следующее data.frame. Я хотел бы добавить столбец слева, который перечисляет срединные абсолютные отклонения (MAD) на строку (я использую пакет stats). Я прочитал сообщения, используя функцию rowMeans, но я не могу использовать ее здесь для MAD. Я надеюсь, что кто-то может помочь, пожалуйста.

 library(stats)
 df <- as.data.frame(matrix(ncol=7, nrow=3, 
    c(3,6,NA,4,5,NA,7,6,2,7,10.4,8,9,NA,3.7,4,6,0.4,NA,7,2.9), byrow = TRUE))

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Мы можем написать нашу собственную функцию в базе R для вычисления среднего абсолютного отклонения (MAD).

my_mad <- function(x, constant = 1.4826) {
    median(abs(x - median(x, na.rm = TRUE)), na.rm = TRUE) * constant
}

apply(df, 1, my_mad) 
#[1] 1.48 2.22 2.30
1 голос
/ 17 апреля 2020

Мы можем l oop по строкам с apply, MARGIN = 1 и применить mad

df$MAD <- apply(df, 1, mad, na.rm = TRUE)
df$MAD
#[1] 1.48260 2.22390 2.29803

В matrixStats, есть rowMads

library(matrixStats)
rowMads(as.matrix(df), na.rm = TRUE)
#[1] 1.48260 2.22390 2.29803
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...