r - 两个data.tables匹配列数

标签 r data.table

如果我有两个 data.tables,dt1dt2,我想要使用 if then 逻辑的列之间的匹配数。如果 dt1$V1==dt$V2,那么 dt$V1 == dt$V2 呢?但是这个 if-then 语句的关键是按 dt1$V1 == dt$V2 中的匹配项进行分组。我想使用 data.table 来提高效率,因为我实际上有一个大数据集。

dt1 <- data.table(c("a","b","c","d","e"), c(1:5))
dt2 <- data.table(c("a","d","e","f","g"), c(3:7))

在这个虚拟示例中,V1 之间有 3 个匹配项,但 V2 组中只有两个匹配项。所以答案(使用 nrow 可能,如果我是子集),将是 2。

最佳答案

我想你正在寻找 fintersect:

fintersect(dt1,dt2)

给予:

   V1 V2
1:  d  4
2:  e  5

要获取行数,添加 [, .N]:

fintersect(dt1,dt2)[, .N]

给出:

[1] 2

关于r - 两个data.tables匹配列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44465902/

相关文章:

r - 在 `geom_hline` 图中设置 `geom_bar` 的长度

对于海量数据,用 geom_boxplot 替换 geom_rug

r - Frank - 从 R 中的 data.table 指定多个列

r - 有多个匹配项时加入数据框并选择随机行

r - 按 2 个成对向量子集/过滤 data.table

r - lapply 与嵌套列表

r - 使用 ggplot 组合条形图和折线图

r - 向 Rcpp::DataFrame 添加列正在回退到列表

r - Rcpp 中的 is_NA() 与 all() 结合使用

r - 具有多个条件的内连接 r 数据表