%in%
работает с vector
с / матрицами. В соответствии с ?"%in%"
x - вектор или NULL: значения для сопоставления. Поддерживаются длинные векторы.
table -vector или NULL: значения для сопоставления. Длинные векторы не поддерживаются.
и не включены data.frame
dat[] <- lapply(dat, function(x) replace(x, x %in%vowels, "vowel"))
dat
# V1 V2 V3 V4 V5
#1 vowel K vowel vowel vowel
#2 B L V F P
#3 C M W G Q
#4 D N X H R
#5 vowel vowel Y vowel S
#6 F P Z J T
#7 G Q vowel K vowel
#8 H R B L V
#9 vowel S C M W
#10 J T D N X
С tidyverse
мы можем использовать mutate_all
library(dplyr)
dat <- dat %>%
mutate_all(~ replace(., . %in% vowels, 'vowel'))
В более новой версии dplyr
мы можем использовать across
с mutate
dat <- dat %>%
mutate(across(everything(), ~ replace(., . %in% vowels, 'vowel')))
Если есть несколько наборов для сравнения, используйте case_when
или ifelse
dat %>%
mutate_all(~ case_when(. %in% vowels ~ 'vowel', . %in% secondset ~ 'newval', . %in% thirdset ~ 'others'))
С data.table
library(data.table)
setDT(dat)[, lapply(.SD, function(x) replace(x, x %in% vowels, 'vowel'))]