如何在另一个中获得一个data.frame的相对补码?

时间:2016-07-28 14:27:43

标签: r dataframe complement

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

例如

def run(self):
    if not step_1():
        self.logger.error('Error in step 1')
        return False
    if not step_2():
        self.logger.error('Error in step 2')
        return False
    if not step_3():
        self.logger.error('Error in step 3')
        return False
    return True

期望的输出:

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

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))

如何将一个data.frame的相关补充集合转换为另一个?实现这项任务的正确方法是什么?感谢

1 个答案:

答案 0 :(得分:0)

试试这个

Dim subject As Range
Dim sheet As Range
Dim clm as long
Set subject = Application.InputBox(prompt:="select Subject to be looked up", Type:=8)
Set sheet = Application.InputBox(prompt:="select tab/range", Type:=8)
clm = Application.InputBox(prompt:="Relative Column Reference", Type:=1)
'Change the range to the cell into which you want the formula placed.
ActiveSheet.Range("A1").Formula = "=VLOOKUP(" & Subject.Address(0,0) & "," & sheet.Address(0, 0, xlA1, 1) & "," & clm & ",False)"

使用library(dplyr) output <- anti_join(foo,bleh) output[order(output$start),] 包中的setdiff的另一个选项(@Frank感谢您的更正)

dplyr