【发布时间】:2018-04-06 19:14:20
【问题描述】:
我有两个数据框:raw2 有 28,406 条记录,raw3 有 26,421 条记录。
raw3 中的记录是raw2 中的记录的子集。事实上raw3 是使用以下方法派生的:
raw3<-setDT(raw2)[order(O_ID, Program_forsorting), head(.SD, 1), .(O_ID)]
我现在有一个setdiff 函数,我正在尝试将未从raw2 转移到raw3 的记录使用:
settdiff(raw2,raw3)
结果应该有 1,985 条记录。但是,结果有 28,406 个,代表 raw2。如果我将公式切换为 settdiff(raw3,raw2),结果包含 26,421 条记录。
我做错了什么?
这里是示例数据
raw2<-as.data.frame(cbind("col1"=c("a","h","b","f","g"),"O_ID"=c(1,1,1,4,5), "Program_forsorting"=c("p1","p2","p2","p3","p1")))
【问题讨论】:
-
是否有多个列?您是否尝试检查所有列中的所有值是否匹配?在寻求帮助时,您应该包含一个简单的reproducible example,其中包含示例输入和所需的输出,可用于测试和验证可能的解决方案。您不必分享您的实际数据,但除非我们能够重现正在发生的事情,否则很难提供帮助。
-
我最初没有提供样本数据,因为我认为它与数据集的大小有关。我在上面提供了示例数据。
标签: r subset set-difference