r - R写一个函数输入等于整数,但输入可能是NA
问题描述
我想写一个函数,确定输入等于1,但输入可能包括(NA NULL)。
> equals1 <- function(x){
+ return(x==1)
+ }
> equals1(1)
[1] TRUE
> equals1(Inf)
[1] FALSE
> equals1(NA)
[1] NA
> equals1(NULL)
logical(0)
> equals1(NaN)
[1] NA
我想要的如下:</p>
equals1<-function(x){
if(is.null(x)){
return(FALSE)
}else if(is.na(x)){
return(FALSE)
}else{return(x==1)}
}
c(equals1(1),equals1(Inf),equals1(NA),equals1(NULL),equals1(NaN))
# [1] TRUE FALSE FALSE FALSE FALSE
有简单的功能吗?谢谢!
解决方案
identical
可以做到这一点。
identical(1, 1)
#> [1] TRUE
identical(1, Inf)
#> [1] FALSE
identical(1, NA)
#> [1] FALSE
identical(1, NULL)
#> [1] FALSE
identical(1, NaN)
#> [1] FALSE
由reprex 包(v0.2.1)于 2019 年 3 月 8 日创建
你可以像这样编写一个简单的包装器:
equals1 <- function(x)identical(x, 1)
c(equals1(1),equals1(Inf),equals1(NA),equals1(NULL),equals1(NaN))
#> [1] TRUE FALSE FALSE FALSE FALSE
由reprex 包(v0.2.1)于 2019 年 3 月 8 日创建
推荐阅读
- ios - 以iOS的xamarin形式将孩子异步添加到stacklayout
- javascript - 连续期间的javascript搜索字符串
- elasticsearch - _meta 字段编辑是否会清除 Elasticsearch 中的任何缓存?
- django - Django自定义字段方法不在mysql中创建枚举字段
- html - How to know the tabs selected from vertical and horizontal tabs?
- apache-kafka - Does using a single partition per channel (topic) stop Hyperledger Fabric from scaling orderers horizontally?
- python-3.x - Scrapy中CrawlSpider的嵌套规则
- html - 在鼠标悬停时为地图添加弹出文本
- hive - hive 2.3.2 中的 kryo 库中的 stackoverflow 错误
- python - 如何使用 django 查询集获得学习者回答的所有问题?