【发布时间】:2021-06-10 06:53:14
【问题描述】:
我有一个非常简单的案例,我想根据特定数据帧的公共 id 元素将多个数据帧组合成一个。
例子:
id <- c(1, 2, 3)
x <- c(10, 12, 14)
data1 <- data.frame(id, x)
id <- c(2, 3)
x <- c(20, 22)
data2 <- data.frame(id, x)
id <- c(1, 3)
x <- c(30, 32)
data3 <- data.frame(id, x)
这给了我们,
$data1
id x
1 1 10
2 2 12
3 3 14
$data2
id x
1 2 20
2 3 22
$data3
id x
1 1 30
2 3 32
现在,我想根据 data3 的 id 组合所有三个数据帧。预期的输出应该是这样的
> comb
id x
1 1 10
2 1 NA
3 1 30
4 3 14
5 3 22
6 3 32
我正在尝试以下操作,但没有得到预期的输出。
library(dplyr)
library(tidyr)
combined <- bind_rows(data1, data2, data3, .id = "id") %>% arrange(id)
知道如何获得预期的输出吗?
【问题讨论】:
-
为什么最终数据集中没有2?