r - 怎么可能所有(`all`)都为真,而没有(`any`)同时为真?
问题描述
a <- character()
b <- "SO is great"
any(a == b)
#> [1] FALSE
all(a == b)
#> [1] TRUE
手册描述了这样的“任何”
给定一组逻辑向量,至少有一个值是真的吗?
因此,在比较中甚至没有一个值a == b
产生 TRUE。如果是这种情况,“任何”如何返回 FALSE 而“所有”返回 TRUE?'all' 被描述为给定一组逻辑向量,所有的值都是真的吗?.
简而言之:所有值都是 TRUE 并且没有一个同时是 TRUE?我不是专家,但这看起来很奇怪。
问题:
是否有合理的解释,或者只是 R 的一些怪癖?
有什么方法可以解决这个问题?
由reprex 包(v0.3.0)于 2021-01-08 创建
解决方案
关于问题 2,我知道identical
。它适用于我能想到的所有情况。
a <- "a"
b <- "b"
identical(a, b) # FALSE >> works
#> [1] FALSE
a <- character(0)
identical(a, b) # FALSE >> works
#> [1] FALSE
a <- NA
identical(a, b) # FALSE >> works
#> [1] FALSE
a <- NULL
identical(a, b) # FALSE >> works
#> [1] FALSE
a <- b
identical(a, b) # TRUE >> works
#> [1] TRUE
identical
似乎是一个很好的解决方法,尽管对于像我这样的兼职开发人员来说,它仍然感觉像是一种解决方法。还有更多的解决方案吗?更好的?为什么R首先表现得像这样(见问题)?
由reprex 包(v0.3.0)于 2021-01-08 创建
推荐阅读
- azure - 天蓝色容器和托管磁盘
- php - PHP OAuth 2.0 授权 API 和 .NET 资源 API
- java - 关于 Jaxrpc jar
- javascript - selectedIndex 不适用于 mat-tab-nav-bar 角度材料选项卡
- dialog - 电子:文件对话框窗口应该集中直到决定
- environment-variables - Why the contents of environ in the /proc file system differs from what extern environ pointed to?
- reactjs - 监视在 componentDidMount 中调用的方法
- azure - Azure Function is calling itself twice on App service plan
- sql - 如何比较同一张表中的多行?
- ios - 滚动表格视图上的重复复选标记