假设我有数据
mydat=structure(list(id = 1:6, x2 = c(12L, 12L, 12L, 12L, 12L, 12L),
x3 = c(12L, 12L, 12L, 12L, 12L, 12L)), .Names = c("id", "x2",
"x3"), class = "data.frame", row.names = c(NA, -6L))
我也有csv文件
test=read.csv(path,sep=";", dec",")
它具有这种结构
test=structure(list(id = 1:5, x2 = c(12L, 12L, 12L, 12L, 12L), x3 = c(12L,
12L, 12L, 12L, 12L)), .Names = c("id", "x2", "x3"), class = "data.frame", row.names = c(NA,
-5L))
我该如何匹配这两个数据集,以致从mydat
中删除
与test
具有相似ID的观察结果?
I.E。输出必须是
id x2 x3
6 12 12
id 1,2,3,4,5
中的mydat
与test
数据集相似。
答案 0 :(得分:1)
您可以使用dplyr中的anti_join
dplyr::anti_join(mydat,test)
Joining, by = c("id", "x2", "x3")
id x2 x3
1 6 12 12
在基数R中:您可以将数据折叠成字符串并进行比较:
mydat[!do.call(paste,mydat)%in%do.call(paste,test),]
id x2 x3
6 6 12 12
答案 1 :(得分:1)
使用R base。
> mydat[setdiff(mydat$id, test$id), ]
id x2 x3
6 6 12 12