Я начинаю с воссоздания ваших наборов данных.Вам не нужно выполнять эту часть, потому что у вас уже есть свои собственные данные, но я включил их здесь для тех, кто хочет воспроизвести решение.
df1 <- data.frame(stringsAsFactors=FALSE,
full.name = c("karachi east", "phu my", "phu my", "delhi",
"west australia", "west australia", "abu dhabai"),
first.of.full.name = c("karachi", "phu", "phu", "delhi", "west", "west",
"abu"),
country = c("pakistan", "england", "india", "china", "england",
"australia", "xyz"))
df2 <- data.frame(stringsAsFactors=FALSE,
name = c("karachi", "phu my", "delhi", "west australia", "abu"),
corrected.country = c("pakistan", "england", "India", "australia", "dubai")
)
Теперь загрузите пакет dplyr,Вы можете использовать inner_join, чтобы сопоставить каждую переменную «key» (т.е. full.name и first.of.full.name) с df2, а затем с помощью union () объединить два набора данных.
library(dplyr)
df3 <- union(inner_join(df1, df2, by = c("first.of.full.name" = "name")) ,
inner_join(df1, df2, by = c("full.name" = "name")))
df3
#> full.name first.of.full.name country corrected.country
#> 1 karachi east karachi pakistan pakistan
#> 2 delhi delhi china India
#> 3 abu dhabai abu xyz dubai
#> 4 phu my phu england england
#> 5 phu my phu india england
#> 6 west australia west england australia
#> 7 west australia west australia australia
Если разбить это на отдельные этапы, это будет
library(dplyr)
df3 <- inner_join(df1, df2, by = c("first.of.full.name" = "name"))
df3
#> full.name first.of.full.name country corrected.country
#> 1 karachi east karachi pakistan pakistan
#> 2 delhi delhi china India
#> 3 abu dhabai abu xyz dubai
df4 <- inner_join(df1, df2, by = c("full.name" = "name"))
df4
#> full.name first.of.full.name country corrected.country
#> 1 phu my phu england england
#> 2 phu my phu india england
#> 3 delhi delhi china India
#> 4 west australia west england australia
#> 5 west australia west australia australia
df5 <- union(df3, df4)
df5
#> full.name first.of.full.name country corrected.country
#> 1 karachi east karachi pakistan pakistan
#> 2 delhi delhi china India
#> 3 abu dhabai abu xyz dubai
#> 4 phu my phu england england
#> 5 phu my phu india england
#> 6 west australia west england australia
#> 7 west australia west australia australia
Создано в 2019-02-27 пакетом представлением (v0.2.0).