首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从数据帧中选择不匹配的行?

如何从数据帧中选择不匹配的行?
EN

Stack Overflow用户
提问于 2011-04-28 09:05:55
回答 3查看 99.2K关注 0票数 44

我正在尝试识别数据框中不匹配的值,但不知道如何做到这一点。

代码语言:javascript
复制
# make data frame 
a <- data.frame( x =  c(1,2,3,4)) 
b <- data.frame( y =  c(1,2,3,4,5,6))

# select only values from b that are not in 'a'
# attempt 1: 
results1 <- b$y[ !a$x ]

# attempt 2:  
results2 <- b[b$y != a$x,]

如果a = c(1,2,3)可以工作,因为ab的倍数。然而,我只是尝试从数据框y中选择所有不在x中的值,而不知道要使用哪个函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-28 10:39:13

如果我理解正确的话,您需要对%in%运算符进行求反。像这样的东西应该是有效的:

subset(b, !(y %in% a$x))

代码语言:javascript
复制
> subset(b, !(y %in% a$x))
  y
5 5
6 6
票数 68
EN

Stack Overflow用户

发布于 2011-04-28 09:13:34

尝试设置差异函数setdiff。所以你会有

代码语言:javascript
复制
results1 = setdiff(a$x, b$y)   # elements in a$x NOT in b$y
results2 = setdiff(b$y, a$x)   # elements in b$y NOT in a$x
票数 26
EN

Stack Overflow用户

发布于 2018-11-15 20:41:18

您也可以使用dplyr来完成此任务。查找b中而不是a中的内容

代码语言:javascript
复制
library(dplyr)    
anti_join(b, a, by = c("y" = "x"))

#   y
# 1 5
# 2 6
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5812478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档