r比较数据.按元素进行元素



有两个数据。

> 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中的每个行(按元素元素)进行比较。最终的数据。表情如下:

> 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

相关内容

  • 没有找到相关文章

最新更新