Аргумент включен в список страниц? - PullRequest
0 голосов
/ 21 января 2019

Я хочу определить оператор %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 голосов
/ 21 января 2019

Как сказал MrFlick в комментарии , не переопределяйте встроенные операторы, это обязательно что-то сломает.
Попробуйте это и посмотрите, если он делает то, что вы хотите. Я назвал новый оператор %IN%, так как R чувствителен к регистру.

`%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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...