Если это всегда первое имя, вызывающее проблему, вы можете использовать регулярное выражение, чтобы избавиться от него.Обратите внимание, что сначала я преобразовываю все факторы в символы.
df1 <- data.frame(name="RANDI FIRAT CAYLIOGLU", correct = 30, stringsAsFactors = F)
df2 <- data.frame(name="FIRAT CAYLIOGLU",id = 01, stringsAsFactors = F)
libray(dpylr)
df1%>%
mutate(name2 = sub("^[A-Za-z]+ ", "", name)) %>%
full_join(df2, by = c("name2" = "name"))
name correct name2 id
1 RANDI FIRAT CAYLIOGLU 30 FIRAT CAYLIOGLU 1
Если это также может быть отчество, вы можете создать дополнительный столбец name3
, который содержит только имена и фамилии:
libray(dpylr)
df1%>%
mutate(name2 = sub("^[A-Za-z]+ ", "", name),
name3 = sub(" [A-Za-z]+ ", " ", name) %>%
left_join(df2, by = c("name2" = "name")) %>%
left_join(df2, by = c("name3" = "name"))
Здесь name2
- это просто второе имя и фамилия, а name3
содержит имя и фамилию.