Я уверен, что этот вопрос задавался ранее, но я не могу найти ответ на мою жизнь.Я хочу использовать dplyr, чтобы объединить два элемента.Если второй столбец NA, просто присоединитесь к первому столбцу.Если второй столбец не является NA, объедините первый и второй столбцы.Решение ниже не работает, но это то, что я пытаюсь сделать.
library(tidyverse)
df1 <- tibble(x = c("Name", "City", "City"), y = c("Table5", "Table1", "Table2"))
df2 <- tibble(x2 = c("Name", "City", "City"), y2 = c(NA, "Table1", "Table2"), z = c("a", "b", "c"))
joined_data <- if (is.na(df2$y2)) {
df1 %>%
left_join(df2, by = c("x" = "x2"))
} else {
df1 %>%
left_join(df2, by = c("x" = "x2", "y" = "y2"))
}
Окончательный результат должен быть
x y z
<chr> <chr> <chr>
1 Name Table5 a
2 City Table1 b
3 City Table2 c