R逐元素比较data.table个元素

R compare data.table elements by elements

有两个data.tables:

> aDT <- data.table(colA = "apple", colB = "banana", colC = "4")
> aDT
    colA   colB colC
1: apple banana    4


> bDT <- data.table(colA = c("purple","apple"), colB = c("pear","banana"), colC = c("4","2"))
> bDT
     colA   colB colC
1: purple   pear    4
2:  apple banana    2

我想逐个元素地比较 aDT 中的唯一行和 bDT 中的每一行。结果 data.table 看起来像:

> resultDT <- data.table(colA = c(FALSE,TRUE), colB = c(FALSE,TRUE), colC = c(TRUE,FALSE))
> resultDT
    colA  colB  colC
1: FALSE FALSE  TRUE
2:  TRUE  TRUE FALSE

如何实现?

aDT[rep(1, nrow(bDT))] == bDT
#       colA  colB  colC
# [1,] FALSE FALSE  TRUE
# [2,]  TRUE  TRUE FALSE

另一种选择是Map比较两个数据集的相应列

aDT[, Map(`==`, .SD, bDT)]
#   colA  colB  colC
#1: FALSE FALSE  TRUE
#2:  TRUE  TRUE FALSE