我有两个具有不同列和不同行大小的数据框
library(tidyverse)
tb1 <- tibble(id= 1:10,
a= 1:10,
b=11:20)
tb2 <- tibble(id= 1:5,
q= 1:5,
z= 11:15)
我可以轻松地通过id
按键组合它们
full_join(tb1, tb2, by = "id")
。
# A tibble: 10 x 5
id a b q z
<int> <int> <int> <int> <int>
1 1 1 11 1 11
2 2 2 12 2 12
3 3 3 13 3 13
4 4 4 14 4 14
5 5 5 15 5 15
6 6 6 16 NA NA
7 7 7 17 NA NA
8 8 8 18 NA NA
9 9 9 19 NA NA
10 10 10 20 NA NA
如果我没有带有键的列并且不想在每个数据框中提前创建它,我该怎么做呢?
tb1 <- tibble(a= 1:10,
b=11:20)
tb2 <- tibble(q= 1:5,
z= 11:15)
有什么优雅的解决方案吗?不要这么笨重
tb1 %>%
mutate(row = row_number()) %>%
left_join(
tb2 %>% mutate(row = row_number()),
by = "row"
) %>%
select(-row)
尝试一下
merge
,但不推荐这样做。在rownames上指定
by=0
合并。