我有两个数据帧(df和df1).df1是df的子集.我想获得一个数据帧,它是df中df1的补码,即返回第一个数据集的行,这些行在第二个数据集中不匹配.比如让,
数据框df:
heads
row1
row2
row3
row4
row5
Run Code Online (Sandbox Code Playgroud)
数据框df1:
heads
row3
row5
Run Code Online (Sandbox Code Playgroud)
然后所需的输出df2是:
heads
row1
row2
row4
Run Code Online (Sandbox Code Playgroud) 我有一个data.table名字dtA:
我的实际dtA有62871932行和3列:
date company value
198101 A 1
198101 A 2
198101 B 5
198102 A 2
198102 B 5
198102 B 6
Run Code Online (Sandbox Code Playgroud)
data.table dtB有一些我想要删除的列dtA,所以dtB就像规则:
实际dtB有19615280行和3列:
date company value
198101 A 2
198102 B 5
Run Code Online (Sandbox Code Playgroud)
最终结果是:
date company value
198101 A 1
198101 B 5
198102 A 2
198102 B 6
Run Code Online (Sandbox Code Playgroud)
它不是那么简单:
dtA=dtA[!(dtB$company %in% dtA$company)]
Run Code Online (Sandbox Code Playgroud)
因为它还取决于日期和价值.
我尝试将两个表合并在一起,并将其链接到不在语句中:
dtA=dtA[dtB, on=date][!(company %in% comapny) & !(value %in% value)]
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
加入超过2 …