覆盖内置的is.na功能

时间:2013-04-16 06:38:52

标签: r override na

作为我之前提问的后续问题 - NaN is removed when using na.rm=TRUE,我正在寻找一种解决方法,对我的(大型)代码库进行微小的更改。

我尝试过这个,但是

my.is.na <- function(x)
{
   ifelse(is.na(x) & !is.nan(x), TRUE, FALSE)
}

但我想覆盖内置的is.na函数。将我的函数重命名为is.na显然会导致无限递归。我有什么选择?

PS:在所有代码中,假设is.na(NaN)返回FALSE,所以我更愿意覆盖。

1 个答案:

答案 0 :(得分:0)

我不确定这是否合法,但是:

old.na <- is.na
is.na <- function(x)
{
   ifelse(old.na(x) & !is.nan(x), TRUE, FALSE)
}

这可能会违反R中的某些规则,并可能会产生其他一些不良后果,但至少它的行为与您的想法相同......