有两个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
如何实现它?
答案 0 :(得分:1)
aDT[rep(1, nrow(bDT))] == bDT
# colA colB colC
# [1,] FALSE FALSE TRUE
# [2,] TRUE TRUE FALSE
答案 1 :(得分:0)
另一个选项是Map
来比较两个数据集的相应列
aDT[, Map(`==`, .SD, bDT)]
# colA colB colC
#1: FALSE FALSE TRUE
#2: TRUE TRUE FALSE