cat*_*ure 38
不,没有内置功能可以做到这一点,但您可以轻松自己编写代码
`%nin%` = Negate(`%in%`)
Run Code Online (Sandbox Code Playgroud)
要么
`%!in%` = Negate(`%in%`)
Run Code Online (Sandbox Code Playgroud)
请参阅此主题和后续讨论:%in%operator - NOT IN
此外,有人指出该软件包Hmisc包括操作员%nin%,因此如果您将它用于您的应用程序,它已经存在.
library(Hmisc)
"A" %nin% "B"
#[1] TRUE
"A" %nin% "A"
#FALSE
Run Code Online (Sandbox Code Playgroud)
你总是可以创建一个:
> `%out%` <- function(a,b) ! a %in% b
> 1:10 %out% 5:15
[1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
否则有一个类似的函数setdiff,它返回不在的唯一元素:ab
> setdiff(1:10,5:15)
[1] 1 2 3 4
> setdiff(5:15,1:10)
[1] 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)
实际上,您不需要多余的括号即可!c("A", "B") %in% c("B", "C")。
如果您喜欢更容易阅读的内容,请自己定义:
"%nin%" <- function(x, table) match(x, table, nomatch = 0L) == 0L
Run Code Online (Sandbox Code Playgroud)
这具有不浪费精力的优势-我们没有得到结果,然后取反,我们只是直接得到结果。(差异通常不大)
| 归档时间: |
|
| 查看次数: |
17276 次 |
| 最近记录: |