0

我有两个 data.frame 对象需要从一个到另一个获取其相对补集。我查看了这个网站上的类似帖子,当然有人问过,但它是关于矢量的,没关系。但是,我尝试了本网站现有帖子的解决方案,但没有得到预期的输出。我尝试了几种方法,例如 setdiff,pmatch 反之亦然,它们都不返回我的预期输出。任何人都可以提出有效完成这项任务的可能方法吗?

例子

foo <- data.frame( start=seq(1, by=4, len=6), stop=seq(3, by=4, len=6))
bleh <- data.frame(start=seq(1, by=5, len=5), stop=seq(3, by=5, len=5))

所需的输出:

根据wiki中的补集理论,我的预期输出如下:

  start stop
1     5    7
2     9   11
3    13   15
4    17   19

我怎样才能得到一个data.frame的相关补集到另一个?完成这项任务的正确方法是什么?谢谢

4

1 回答 1

0

试试这个

library(dplyr)
output <- anti_join(foo,bleh)
output[order(output$start),]

setdiff使用from package 的另一个选项dplyr(@Frank 感谢您的更正)

setdiff(foo,bleh)
#  start stop
#1     5    7
#2     9   11
#3    13   15
#4    17   19
于 2016-07-28T14:31:15.027 回答