는 :비교 벡터 다음 예에서
DT <- data.table(A1=c(1,2),A2=c(2,3),B1=c(1,2),B2=c(3,4),B3=c(2,5))
I 열 A1 및 A2의 값이 모두 B1 중, B2 또는 B3의 발생 여부를 각각의 행에 대해 검사 할 .
내가 할 경우
DT[,BOTH_PRESENT:=!(F %in% (c(A1,A2) %in% c(B1,B2,B3)))]
이 수율 :
A1 A2 B1 B2 B3 BOTH_PRESENT
1: 1 2 1 3 2 TRUE
2: 2 3 2 4 5 TRUE
내가 2 행 1 행에 대해 참과 거짓 기대 동안
.# Row 1
!(F %in% (c(1,2) %in% c(1,3,2)))
# Row 2
!(F %in% (c(2,3) %in% c(2,4,5)))
코드를 어떻게 변경해야합니까?
내 실제 데이터 세트가 열의 관점에서 훨씬 더 커서 (A1 == B1 | A1 == B2 | A1 == B3) & (A2 == B1 | A2 == B2 | A2 == B3)
과 같은 표현을 만드는 것이 좋은 해결책이 될 수 없기 때문에.
왜 downvote? 그렇게한다면 의견을 보내주십시오. –
결국 솔루션은 실제로 매우 효율적이라고 생각합니다. 많은 열이있는 경우에만 프로그래밍 방식으로 식을 만들어야합니다. – Roland
좋아, 시도해 주셔서 감사합니다 –