页面列表中是否包含自变量?

时间:2019-01-21 16:03:41

标签: r list compare

我想定义运算符%in%,如果TRUE上的参数在右边的列表中,则其操作将返回left,否则返回FALSE。该任务应在不使用循环的情况下实现。

### Creating a simple list

ell <- list( 2, c( 2, 5), list( c( 2, 8)), "xyz")

### Testing of selected elements
2 %in% ell
5 %in% ell
list( c( 2, 8)) %in% ell
list( list( 2, 8)) %in% ell
"xyz" %in% ell

[1] TRUE
[1] FALSE
[1] TRUE
[1] FALSE
[1] TRUE

1 个答案:

答案 0 :(得分:1)

就像MrFlick在comment中所说的那样,不要覆盖内置运算符,它肯定会破坏某些内容。
试试这个,看看它是否能满足您的要求。由于R区分大小写,因此我将新运算符命名为%IN%

`%IN%` <- function(x, y){
  x %in% unlist(y, recursive = FALSE)
}

2 %IN% ell
#[1] TRUE
5 %IN% ell
#[1] TRUE
list( c( 2, 8)) %IN% ell
#[1] TRUE
list( list( 2, 8)) %IN% ell
#[1] FALSE
"xyz" %IN% ell
#[1] TRUE