R - 从一个数据集中删除存在于另一个数据集中的行

时间:2014-05-13 00:44:06

标签: r

在R中我有两个数据集,一个包含所有数据,我们可以调用这个数据集LARGE,其中我们有一个标记为idnumber的列。另一个具有LARGE特定数据记录的数据集是一个简化版本,因为我制作的标准也有一个标记为idnumber的列。 我想要做的是从数据集'LARGE'我想从它中排除所有数据记录,这些记录具有与简化版本相同的idnumber。
这就是我所想到的:无与伦比的< - LARGE [其中(大量$ idnumber不是减少$ idnumber)]但我不知道如何在R中编码'not in'

2 个答案:

答案 0 :(得分:1)

您正在描述反加入

library(dplyr)

LARGE <- data.frame(idnumber = 1:100, Y = rnorm(100))
reduced <- LARGE[sample(nrow(LARGE), 42),]

unmatched <- anti_join(LARGE, reduced)

使用&#34;而不是&#34;二进制函数一般来说,你可以应用以下函数:

`%notin%` <- function(x,y) !(x %in% y)
3 %notin% c(3,5)
# [1] FALSE

答案 1 :(得分:0)

关注Coles回答,谷歌&#34; R不在运营商&#34;

最简单的方法:

data [!(data %in% large$idnubmer),]

所以%in%会找到匹配的所有情况。的!在开始时否定&#39;那... ..:找到他们不在的地方。