If a vector has c("A", "b", "c") and we want to remove "b" and "c", this function can do the work. It can also replace "b" and "c" with the NA symbol.

removeMatches(x, y, padNA = FALSE)

Arguments

x

vector from which elements are to be removed

y

shorter vector of elements to be removed

padNA

Default FALSE, Should removed items be replaced with NA values?

Value

a vector with elements in y removed

Details

If elements in y are not members of x, they are silently ignored.

The code for this is not complicated, but it is difficult to remember. Here's the recipe to remove elements y from x: x <- x[!x %in% y[y %in% x]]. It is easy to get that wrong when in a hurry, so we use this function instead. The padNA was an afterthought, but it helps sometimes.

Author

Ben Kite <bakite@ku.edu> and Paul Johnson <pauljohn@ku.edu>

Examples

x <- c("a", "b", "c", "d", "e", "f")
y <- c("e", "a")
removeMatches(x, y)
#> [1] "b" "c" "d" "f"
y <- c("q", "r", "s")
removeMatches(x, y)
#> [1] "a" "b" "c" "d" "e" "f"