두 데이터 프레임이 동일한지 확인하는 방법
R에 대규모 데이터셋이 있다고 가정해 보겠습니다. 두 데이터셋이 동일한지 여부만 알고 싶습니다.저는 동일한 결과를 얻기 위해 다양한 알고리즘을 실험할 때 자주 사용합니다.예를 들어, 다음과 같은 데이터셋이 있다고 가정해 보겠습니다.
df1 <- data.frame(num = 1:5, let = letters[1:5])
df2 <- df1
df3 <- data.frame(num = c(1:5, NA), let = letters[1:6])
df4 <- df3
이것이 그들을 비교하는 방법입니다.
table(x == y, useNA = 'ifany')
데이터셋에 NA가 없을 때 유용한 기능:
> table(df1 == df2, useNA = 'ifany')
TRUE
10
그러나 NA가 있는 경우에는 그렇지 않습니다.
> table(df3 == df4, useNA = 'ifany')
TRUE <NA>
11 1
예를 들어, 다음과 같은 정보를 쉽게 되어 있습니다.NA
두 데이터 프레임이 동일하다는 것을 알고 있기 때문에 문제가 되지 않습니다.문제는.NA == <anything>
수확량NA
, 그래서 데이터셋 중 하나가 있을 때마다NA
, 같은 입장에 있는 다른 사람이 무엇을 가졌는지는 중요하지 않습니다. 결과는 항상 다음과 같습니다.NA
.
그래서 사용.table()
데이터셋을 비교하는 것은 제게 이상적이지 않은 것 같습니다.두 개의 데이터 프레임이 동일한지 확인하려면 어떻게 해야 합니까?
추신: 여러 데이터 세트를 R에서 비교하거나 R에서 두 데이터 세트를 비교하거나 R에서 데이터 세트를 비교하는 것은 아닙니다.
모두 찾아보세요. 동등합니다.탑승자가 몇 명 있지만, 당신에게 적합할 수도 있습니다.
all.equal(df3,df4)
# [1] TRUE
all.equal(df2,df1)
# [1] TRUE
Metrics가 지적한 바와 같이, 사용자는 또한identical()
데이터셋을 비교합니다.이 접근법과 코도레미파의 접근법의 차이점은identical()
그냥 양보할 것입니다TRUE
의FALSE
, 비교되는 물체들이 동일한지 그렇지 않은지에 따라, 반면에all.equal()
둘 중 하나가 돌아올 것입니다.TRUE
또는 객체들 간의 차이점에 대한 힌트.예를 들어 다음을 생각해 보겠습니다.
> identical(df1, df3)
[1] FALSE
> all.equal(df1, df3)
[1] "Attributes: < Component 2: Numeric: lengths (5, 6) differ >"
[2] "Component 1: Numeric: lengths (5, 6) differ"
[3] "Component 2: Lengths: 5, 6"
[4] "Component 2: Attributes: < Component 2: Lengths (5, 6) differ (string compare on first 5) >"
[5] "Component 2: Lengths (5, 6) differ (string compare on first 5)"
게다가 제가 테스트한 바로는identical()
보다 훨씬 더 빨리 달리는 것 같습니다.all.equal()
.
언급URL : https://stackoverflow.com/questions/19119320/how-to-check-if-two-data-frames-are-equal
'sourcecode' 카테고리의 다른 글
$templateRequestProvider의 Angularjs 알 수 없는 공급자 (0) | 2023.10.25 |
---|---|
Angular 4/5+의 API에서 이미지를 얻는 중? (0) | 2023.10.25 |
MySQL - 이전 행에서 값 빼기, 그룹화 기준 (0) | 2023.10.25 |
바퀴의 재창조: 노드.JS/이벤트 기반 프로그래밍 대.기능적 프로그래밍? (0) | 2023.10.25 |
GCC 앨리어싱 확인/제한 포인터 포함 (0) | 2023.10.25 |