Как передать na.rm = TRUE для использования при вычислении медианы?

Я создал "киллеры" данных с тремя переменными. Данные являются числовыми, хотя существуют значения NA.

Моя цель - вычислить среднее значение для каждой из трех переменных.

sapply(killers, function(x) median)

Это возвращает:

$heartattack
function (x, na.rm = FALSE) 
UseMethod("median")
<bytecode: 0x103748108>
<environment: namespace:stats>

Я знаю, что аргумент na.rm является средством игнорирования значений NA. Поскольку na.rm = FALSE существует в том, что было возвращено R, предполагается, что существует способ установить это значение TRUE в строке вышеприведенного кода. Я попробовал несколько вариантов:

sapply(killers, na.rm=TRUE function(x) median)
sapply(killers, function(x) median, na.rm=TRUE)
sapply(killers, function(x) median(na.rm=TRUE))

Я не уверен, что я близок, или если это будет связано с функциями вложенности, как и в других похожих (хотя и в конечном итоге не полезных в этом примере, которые я вижу) сообщениях по теме на SO. например Как передать na.rm как аргумент tapply?, Игнорировать функцию NA в sapply

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

Ответ 1

Просто выполните:

sapply(killers, median, na.rm = TRUE)

Альтернативой будет (на основе вашего кода)

sapply(killers, function(x) median(x, na.rm=TRUE))