【发布时间】:2019-11-25 19:19:31
【问题描述】:
我想在两个表之间重复加入。这是表格。
结构(列表(键=结构(1:4,.Label = c(“A”,“B”,“C”,“D”), class= "因子")), class= "data.frame", row.names = c(NA, -4L))
结构(列表(键=结构(c(1L,2L,2L,3L),.Label = c(“A”, "B", "C"), class= "因子"), 源 = 结构(c(1L, 1L, 2L, 2L), .Label = c("a", "b"), class= "因子" ), value = c(1L, 1L, 2L, 2L)), class= "data.frame", row.names = c(NA, -4L))
<joined>
key
A
B
C
D
<joining>
key source value
A a 1
B a 1
B b 2
C b 2
如果我使用left_join函数,比如left_join(joined, join, by = "key"),结果就在这里。
key source value
1 A a 1
2 B a 1
3 B b 2
4 C b 2
5 D <NA> NA
但是,我想按“来源”加入分组。我的预期结果就在这里。
joining_a <- joining %>%
filter(source == "a")
joining_b <- joining %>%
filter(source == "b")
left_join(joined, joining_a, by = "key")
left_join(joined, joining_b, by = "key")
bind_rows(left_join(joined, joining_a, by = "key"), left_join(joined, joining_b, by = "key"))
key source value
1 A a 1
2 B a 1
3 C <NA> NA
4 D <NA> NA
5 A <NA> NA
6 B b 2
7 C b 2
8 D <NA> NA
如何加入不分割这些表的表?
【问题讨论】:
-
我想你可以把它放在一个列表中并使用
maplist(joining, joining) %>% map_dfr(~ left_join(joined, .x, by = "key"))