Это пример ситуации. Есть ли способ справиться с этим в R, чтобы получить желаемый результат main_df_2. Или, альтернативно, есть ли способ, которым я мог бы добавить строки в lookup_df таким образом, чтобы отсутствующие возможности, где (Division = 'd2') добавили (parent = 'P') и (parent = 'C'), добавили в виде двух строк в дополнение к одной пустой строке?
# example for the type of join
library(tidyverse)
main_df <- data.frame( division = c('d1', 'd1', 'd2', 'd2'),
parent = c('P', 'C', 'P', 'C'))
main_df
# > main_df
# division parent
# 1 d1 P
# 2 d1 C
# 3 d2 P
# 4 d2 C
lookup_df <- data.frame( division = c('d1', 'd1', 'd2'),
parent = c('P', 'C', ''),
plant = c('A', 'B', 'B'))
lookup_df
# > lookup_df
# division parent plant
# 1 d1 P A
# 2 d1 C B
# 3 d2 B
# desired outcome
# > main_df_2
# division parent plant
# d1 P A
# d1 C B
# d2 P B
# d2 C B
main_df_2 <- left_join(main_df, lookup_df,
by = c("division" = "division",
"parent" = "parent"))
main_df_2
# > x1
# division parent plant
# 1 d1 P A
# 2 d1 C B
# 3 d2 <NA>
# 4 d2 C <NA>