如何根据匹配列(特别是两个文件中的DataName和GeneName)值从file1获取不存在于file2中的行?我已经尝试了函数intersect和subset,但我不知道如何给出两列匹配。
假设我有两个数据框
文件1
geneName DataName count
A4GALT data1 34
ABAT data1 34
ABCA1 data1 60
AASS data2 12
ZWINT data2 39
ZYG11A data2 23
ZYX data1 1
......
file2的
geneName DataName
A4GALT data1
ZWINT data2
ABAT data1
结果data.frame将是
geneName DataName log
ABCA1 data1 60
AASS data2 12
ZYG11A data2 23
ZYX data1 1
谢谢
答案 0 :(得分:3)
您可以尝试anti_join
dplyr
library(dplyr)
anti_join(df1, df2, by=c('geneName', 'DataName'))
答案 1 :(得分:3)
或尝试基地R:
file1[!(file1$geneName %in% file2$geneName &
file1$DataName %in% file2$DataName),]
# geneName DataName count
#3 ABCA1 data1 60
#4 AASS data2 12
#6 ZYG11A data2 23
#7 ZYX data1 1