R:检查数据表是否是另一个数据表的子集

时间:2017-07-31 18:41:22

标签: r datatable subset rbind

我如何检查另一个data table的{​​{1}} 子集,无论data tablerow订单是什么?
例如,假设某人column rbindedDT_x移除了DT_y并创建了duplicate。现在,我想知道如何比较DT_ZDT_x并获得显示/表明DT_ZDT_z subset的结果?

非常简单的例子:

DT_Z

我确信 DT1 <- data.table(a= LETTERS[1:10], v=1:10) DT2 <- data.table(a= LETTERS[1:6], v=1:6) DT1 a v 1: A 1 2: B 2 3: C 3 4: D 4 5: E 5 6: F 6 7: G 7 8: H 8 9: I 9 10: J 10 DT2 a v 1: A 1 2: B 2 3: C 3 4: D 4 5: E 5 6: F 6 不会回答我的问题。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用 data.tablefintersect()fsetequal()

is_df1_subset_of_df2 <- function(df1, df2) {
  intersection <- data.table::fintersect(df1, df2)
  data.table::fsetequal(df1, intersection)
}

第一行选取 df1 中存在于 df2 中的元素。 第二行检查该集合是否全部为 df1