基于单个列变量合并两个数据集行

Merging two datasets rows based on a single column variable

我在 R 中有两个包含相同类型数据(相同变量)的数据框。对于这个例子,我将它们命名为 blankdata

>blank    
    Prey  Sample Value
1   act1      IP    0
2   act1    Mock    0
3   act2      IP    0
4   act2    Mock    0
5   act3      IP    0


>data
    Prey  Sample Value
1   act1      IP  2.2
2   act1    Mock    0
3   act3      IP  3.6
4   act3      IP  3.1
5   act3      IP  2.1

我想将两个数据帧合二为一。我想保留 data 中的所有行,同时根据 Prey 列添加 data 中缺少的 blank 中的所有行。明确地说,我不需要 union,因为我不想考虑 整个 行内容,而只考虑 Prey 列的内容合并两个数据集。 下面是这个小示例的预期结果,其中添加了来自 blankact2 行,而来自 data 的行保持不变。

>result    
    Prey  Sample Value
1   act1      IP  2.2
2   act1    Mock    0
3   act3      IP  3.6
4   act3      IP  3.1
5   act3      IP  2.1
6   act2      IP    0
4   act2    Mock    0

我四处寻找了一个简单的解决方案,但我仍然卡住了。感谢任何建议。

rbind(
  data,
  blank[!blank$Prey %in% data$Prey,]
)

这是使用 anti_joinbind_rows

dyplr 解决方案
library(dplyr)
library(tibble)

blank %>% 
  anti_join(data, by="Prey") %>% 
  bind_rows(data, .) %>% 
  as_tibble()
  Prey  Sample Value
  <chr> <chr>  <dbl>
1 act1  IP       2.2
2 act1  Mock     0  
3 act3  IP       3.6
4 act3  IP       3.1
5 act3  IP       2.1
6 act2  IP       0  
7 act2  Mock     0