如果我有两个 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))
在这个虚拟示例中,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/