dplanet
dplanet

Reputation: 5403

The R %in% operator

In R, I have am running the following script:

> 1:6 %in% 0:36
[1] TRUE TRUE TRUE TRUE TRUE TRUE

Which is clearly producing a logical vector. I have read the documentation but can't seem to find an operator that would return a scalar based on the result, such that 1:6 %in% 0:36 would simply return TRUE while having 0:37 %in% 0:36 return FALSE.

Does one exist?

Upvotes: 70

Views: 171512

Answers (1)

nico
nico

Reputation: 51640

You can use all

> all(1:6 %in% 0:36)
[1] TRUE
> all(1:60 %in% 0:36)
[1] FALSE

On a similar note, if you want to check whether any of the elements is TRUE you can use any

> any(1:6 %in% 0:36)
[1] TRUE
> any(1:60 %in% 0:36)
[1] TRUE
> any(50:60 %in% 0:36)
[1] FALSE

Upvotes: 107

Related Questions