There are probably many ways to do it. Here is one.
a<- data.frame(V1= c("carlos rodrigo", "sarah", "patricia raquel", "leonardo"), V2= c("rodrigo", "patri", "raquel", "oscar leonardo"),
Result = c( "carlos", "patri sarah", "patricia", "oscar"))
library(tidyverse)
a %>% rowwise() %>%
mutate(common_content = list(intersect(x=str_split(V1," ",simplify = TRUE),
y=str_split(V2," ",simplify = TRUE))),
V1_unique = list(setdiff(str_split(V1," ",simplify = TRUE),common_content)),
V2_unique = list(setdiff(str_split(V2," ",simplify = TRUE),common_content)),
result_by_code = trimws(paste(V2_unique,V1_unique,collapse="")))