作为我之前提问的后续问题 - 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
,所以我更愿意覆盖。
答案 0 :(得分:0)
我不确定这是否合法,但是:
old.na <- is.na
is.na <- function(x)
{
ifelse(old.na(x) & !is.nan(x), TRUE, FALSE)
}
这可能会违反R中的某些规则,并可能会产生其他一些不良后果,但至少它的行为与您的想法相同......