如何识别两个数据框之间的唯一数据

时间:2019-03-27 17:21:55

标签: r dplyr

对不起,标题不是最好的。我不确定如何正确地说明这一点。

我正在使用dpylr进行一些过滤。因此,为了提供一些背景知识,df1是所有人类基因的列表。 df2列出了某种途径中涉及的基因。为我提供df2列表的软件并不总是使用df1中正确的基因名称,因此当我使用此过滤器时它们会被跳过

filtered <- df1 %>%
    filter(gene.name %in% df2$V1)

因此,我缺少了一些我感兴趣的数据。我想知道是否存在一种方法,可以将称为filtereddf2的新df与一些标记出唯一差异的代码进行比较? filtered数据帧的大部分将与df2相同,但是df2仅具有不正确的基因名称。我要这样做的原因是因为我想返回并更正基因名称。我df1和df2比示例大得多,因此不容易理解。

这里是我所说的例子,所以也许更有意义

df1

gene.name ADCY1 ADCY2 ADCY3 ADCY4

df2

gene.name AC1 ADCY2 AC3 ADCY4

已过滤

gene.name ADCY2 ADCY4

1 个答案:

答案 0 :(得分:1)

获得非内置功能的另一种有趣方式是编写

之类的小功能。
'%notin%' <- function(x,y)!('%in%'(x,y))

然后,您可以以一种整洁的方式得到答案:

unique_differences<-df2 
    %>% filter(gene.name %notin% unlist(df1))