sourcecode

두 데이터 프레임이 동일한지 확인하는 방법

codebag 2023. 10. 25. 23:19
반응형

두 데이터 프레임이 동일한지 확인하는 방법

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()그냥 양보할 것입니다TRUEFALSE, 비교되는 물체들이 동일한지 그렇지 않은지에 따라, 반면에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

반응형