如果我有两个 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))

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

最佳答案

我想你正在寻找 fintersect :

fintersect(dt1,dt2)

给出:



要获取行数,请添加 [, .N] :
fintersect(dt1,dt2)[, .N]

这使:

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

10-10 15:31