首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替代!is.na()?

替代!is.na()?
EN

Stack Overflow用户
提问于 2019-12-24 16:04:20
回答 2查看 293关注 0票数 1

下面这句话的替代方案是什么?

代码语言:javascript
运行
复制
not_cancelled <- flights %>% filter( !is.na(dep_delay), !is.na(arr_delay))

在此语句中,编写了!is.na(dep_delay)。还有没有别的方法可以写呢?

也许像这样的(dep_delay != NA)

我试着用这种方式写,但它不起作用。

EN

回答 2

Stack Overflow用户

发布于 2019-12-24 16:25:07

代码语言:javascript
运行
复制
`%is%` <- function(x, y){
  if(is.na(y))
    return(is.na(x))
  if(x==y) return(TRUE)
  if(x!=y) return(FALSE)

}

c("A",2, NA) %is% NA

试着像这样定义函数。

票数 1
EN

Stack Overflow用户

发布于 2019-12-24 16:10:41

我们可以使用is.finite来代替!is.na

代码语言:javascript
运行
复制
x <- c(NA, 1:3)
!is.na(x)
#[1] FALSE  TRUE  TRUE  TRUE

is.finite(x)
#[1] FALSE  TRUE  TRUE  TRUE

然而,正如@Roland指出的那样,它们并不是完全等价的,它们在处理Inf值的方式上是不同的。

代码语言:javascript
运行
复制
!is.na(Inf)
#[1] TRUE
is.finite(Inf)
#[1] FALSE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59465695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档