Both the `match()`

(returns the first appearance) and `%in%`

(returns a Boolean) functions are designed for this.

`v <- c('a','b','c','e') 'b' %in% v ## returns TRUE match('b',v) ## returns the first location of 'b', in this case: 2 `

ID : 3572

viewed : 293

100

Both the `match()`

(returns the first appearance) and `%in%`

(returns a Boolean) functions are designed for this.

`v <- c('a','b','c','e') 'b' %in% v ## returns TRUE match('b',v) ## returns the first location of 'b', in this case: 2 `

81

`is.element()`

makes for more readable code, and is identical to `%in%`

`v <- c('a','b','c','e') is.element('b', v) 'b' %in% v ## both return TRUE is.element('f', v) 'f' %in% v ## both return FALSE subv <- c('a', 'f') subv %in% v ## returns a vector TRUE FALSE is.element(subv, v) ## returns a vector TRUE FALSE `

73

I will group the options based on output. Assume the following vector for all the examples.

`v <- c('z', 'a','b','a','e') `

*For checking presence:*

**%in%**

`> 'a' %in% v [1] TRUE `

**any()**

`> any('a'==v) [1] TRUE `

**is.element()**

`> is.element('a', v) [1] TRUE `

*For finding first occurance:*

**match()**

`> match('a', v) [1] 2 `

*For finding all occurances as vector of indices:*

**which()**

`> which('a' == v) [1] 2 4 `

** For finding all occurances as logical vector**:

**==**

`> 'a' == v [1] FALSE TRUE FALSE TRUE FALSE `

Edit: Removing **grep()** and **grepl()** from the list for reason mentioned in comments

70

The **any()** function makes for readable code

`> w <- c(1,2,3) > any(w==1) [1] TRUE > v <- c('a','b','c') > any(v=='b') [1] TRUE > any(v=='f') [1] FALSE `

56

You can use the `%in%`

operator:

`vec <- c(1, 2, 3, 4, 5) 1 %in% vec # true 10 %in% vec # false `