R은

2017-12-04 2 views
2

두 data.tables 되세요 요소에 의해 data.table 요소를 비교 :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 

내가 요소에 의해 모든 BDT에서 행 요소와 ADT 유일한 행을 비교하고 싶습니다. 결과 데이터 테이블은 다음과 같습니다.

> 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 

어떻게 구현합니까?

답변

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

또 다른 옵션은 모두 데이터 세트의 해당 열을 비교하는 Map입니다

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