Возможно что-то вроде:
df %>% mutate(x=str_replace_all(chartr("M",".",Position),"E","\\(\\.\\)"),
output=paste0(str_replace(Col1,x,"\\1"),"|",str_replace(Col2,x,"\\1"),
" , ",str_replace(Col1,x,"\\2"),"|",str_replace(Col2,x,"\\2")))
# Col1 Col2 Position Desired.Output x output
#1 Stores Ostues EMMEMM S|O , r|u (.)..(.).. S|O , r|u
#2 University Unasersity MMEEMMMMMM i|a , v|s ..(.)(.)...... i|a , v|s
#3 Street Straeq MMMEME e|a , t|q ...(.).(.) e|a , t|q
Данные:
df <- data.frame ("Col1" = c("Stores","University","Street"),
"Col2" = c("Ostues", "Unasersity", "Straeq"),
"Position" = c("EMMEMM","MMEEMMMMMM", "MMMEME"),
"Desired Output" = c("S|O , r|u","i|a , v|s","e|a , t|q"))