Хотелось бы эффективно заменить все строки частичного совпадения в одном столбце, указав вектор строк, которые будут искать (и сопоставляться), а также использоваться в качестве замены. т.е. для каждого вектора в df ниже, он будет частично совпадать для векторов в vec_string . Если совпадения найдены, он просто заменит всю строку на vec_string . то есть превращение «менеджер подписчика» в «менеджер». Предоставляя больше векторов в vec_string , он будет выполнять поиск по всей df, пока все не будет завершено.
Я запустил функцию, но не могу завершить ее, заменив векторы в df на vec_string. Ценю вашу помощь
df <- c(
'solicitor'
,'subscriber manager'
,'licensed conveyancer'
,'paralegal'
,'property assistant'
,'secretary'
,'conveyancing paralegal'
,'licensee'
,'conveyancer'
,'principal'
,'assistant'
,'senior conveyancer'
,'law clerk'
,'lawyer'
,'legal practice director'
,'legal secretary'
,'personal assistant'
,'legal assistant'
,'conveyancing clerk')
vec_string <- c('manager','law')
#function to search and replace
replace_func <-
function(vec,str_vec) {
repl_str <- list()
for(i in 1:length(str_vec)) {
repl_str[[i]] <- grep(str_vec[i],unique(tolower(vec)))
}
names(repl_str) <- vec_string
return(repl_str)
}
replace_func(df,vec_string)
$`manager`
[1] 2
$law
[1] 13 14
Как видите, функция возвращает именованный список с элементами, на замену которых будет