Мы можем сделать это следующим образом:
library(tidyverse)
df1 %>% mutate_at(vars(1,3,4), funs(gsub("[*-]", "", .)))
col1 col2 col3 col4 col5
1 xx xxx xx xx xxx
2 y yyy yy yy yyy
Обратите внимание, что при использовании []
в регулярных выражениях вам не нужно экранировать символы со специальным значением, квадратные скобки означают, что они уже являются буквальными.
Данные:
df1 <- structure(list(col1 = structure(2:1, .Label = c("*y*", "x-x"), class = "factor"),
col2 = structure(1:2, .Label = c("xxx", "yyy"), class = "factor"),
col3 = structure(1:2, .Label = c("xx*", "y*y"), class = "factor"),
col4 = structure(1:2, .Label = c("xx-", "yy*"), class = "factor"),
col5 = structure(1:2, .Label = c("xxx", "yyy"), class = "factor")), class = "data.frame", row.names = c(NA,
-2L))