如果我有两个 data.tables、 dt1
和 dt2
,我想要使用 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/