У меня есть два довольно сложных data.frames, и мне удалось упростить первый шаг моей проблемы здесь. У меня есть справочная таблица и другая, которая содержит мои данные следующим образом:
ССЫЛКА
ref <- structure(list(group = c("A", "B", "C"), position = c("a", "a",
"b")), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"))
ДАННЫЕ
df <- structure(list(position = c("a", "a"), value = c(1, 1, 2), name = c("foo",
"bar")), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"))
Я использовал left_join(ref,df,by="position") %>% arrange(name)
для получения:
1 A a 1 foo
2 A a 1 bar
3 B a 1 foo
4 B a 1 bar
5 C b NA NA
Однако идеальный вывод:
group position value name
<chr> <chr> <dbl> <chr>
1 A a 1 bar
2 B a 1 bar
3 C b 0 bar
4 A a 1 foo
5 B a 1 foo
6 C b 0 foo
Я бы хотел имя столбца для замены NA на вход от df и значение NA столбца на 0. В реальном df у меня больше, чем foo в столбце имени