다른 행 수와 같은 수의 데이터 프레임이 있습니다. 아래의 예에서 데이터 프레임 1은 4 x 2이고 데이터 프레임 2는 3 x 2입니다. 4 x 3 논리 행렬이 필요합니다. 여기서 TRUE는 데이터 프레임의 모든 행이 일치 함을 나타냅니다. 이 예제는 작동하지만 더 큰 데이터 프레임으로 실행하는 데 오랜 시간이 걸립니다 (약 5,000 개의 행을 가진 두 개의 데이터 프레임을 시도하지만 여전히 두 개의 열만 있음). 이 작업을 수행하는보다 효율적인 방법이 있습니까?두 데이터 프레임을 비교하는 효과적인 방법이 있습니까
> df1 <- data.frame(row.names=1:4, var1=c(TRUE, TRUE, FALSE, FALSE), var2=c(1,2,3,4))
> df2 <- data.frame(row.names=5:7, var1=c(FALSE, TRUE, FALSE), var2=c(5,2,3))
>
> m1 <- t(as.matrix(df1))
> m2 <- as.matrix(df2)
>
> apply(m2, 1, FUN=function(x) { apply(m1, 2, FUN=function(y) { all(x==y) }) })
5 6 7
1 FALSE FALSE FALSE
2 FALSE TRUE FALSE
3 FALSE FALSE TRUE
4 FALSE FALSE FALSE
미리 도움을 청하십시오. 이 빨라집니다 경우
저는 R 블로거에 대한 귀하의 게시물을 보았던 @ flodel 님이보기에이 점을 보았습니다. 연쇄 반응. – Frank