Попытавшись ?max
, вы увидите, что на самом деле он имеет аргумент na.rm =
, установленный по умолчанию на FALSE
.(Это стандартное значение по умолчанию для многих других функций R, включая sum()
, mean()
и т. Д.)
Установка na.rm=TRUE
делает именно то, что вы просите:
d <- c(1, 100, NA, 10)
max(d, na.rm=TRUE)
Если вы хотите удалить все NA
s, используйте вместо этого следующую идиому:
d <- d[!is.na(d)]
Последнее замечание: другие функции (например, table()
, lm()
и sort()
)иметь NA
связанные аргументы, которые используют разные имена (и предлагают разные варианты).Поэтому, если NA
вызывает у вас проблемы при вызове функции, стоит проверить наличие встроенного решения среди аргументов функции.Я обнаружил, что обычно один уже есть.