В качестве продолжения моего предыдущего вопроса - NaN is removed when using na.rm=TRUE, я ищу обходное решение с минимальными изменениями в моей (большой) базе кода.Переопределение встроенной функции is.na
Я попытался это, который работает, но
my.is.na <- function(x)
{
ifelse(is.na(x) & !is.nan(x), TRUE, FALSE)
}
Но я хочу, чтобы переопределить встроенный is.na
функции. Переименование моей функции на is.na
, очевидно, приводит к бесконечной рекурсии. Какие у меня варианты?
PS: Во всем коде предполагается, что is.na(NaN)
возвращает FALSE
, поэтому я бы предпочел переопределить.
Если вы пытаетесь заменить так, как 'na.rm' работает в примитивных функциях, таких как' max' и 'min', возможно, лучше переписать эти функции) – mnel
Я просто прочитал ваш старый вопрос и я подумал: если вы хотите сохранить 'NaN' в вызове' max() ', то какой максимум? Я бы согласился с @mnel и переписал функцию 'max', а не планируемое обходное решение. –
@mnel - это, вероятно, более разумный вариант, поскольку я вижу много потенциальных непредвиденных последствий из следующих ответов, таких как мои. – thelatemail