为了账号安全,请及时绑定邮箱和手机立即绑定

查找数据帧的补码(反连接)

查找数据帧的补码(反连接)

大话西游666 2019-06-17 14:42:58
查找数据帧的补码(反连接)我有两个数据帧(df和df 1)。df 1是df的子集。我想要一个数据帧,它是df1在df中的补充,即返回在第二个数据集中不匹配的第一个数据集的行。例如,让数据帧DF:heads row1 row2 row3 row4 row5数据帧df1:heads row3 row5然后,所需的输出df 2是:heads row1 row2 row4
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您也可以使用data.tables二进制连接

library(data.table)setkey(setDT(df), heads)[!df1]#    heads# 1:  row1# 2:  row2# 3:  row4

编辑:起始数据表v1.9.6+我们可以在不设置键的情况下连接data.tableon

setDT(df)[!df1, on = "heads"]

EDIT 2:起始数据表v1.9.8+ fsetdiff介绍,它基本上是上述解决方案的一个变体,仅在x数据表,例如x[!y, on = names(x)]..如果all设为FALSE(默认行为),则只在x会被归还。对于每个数据表中只有一列的情况,以下内容将与前面的解决方案等效

fsetdiff(df, df1, all = TRUE)


查看完整回答
反对 回复 2019-06-17
?
月关宝盒

TA贡献1772条经验 获得超5个赞

试试看%in%命令并使用!

df[!df$heads %in% df1$heads,]


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 445 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信