2 개의 동일한 data.frames가있는 경우 R 다이제스트 함수가 동일한 결과를 반환해야한다고 가정합니다. 이 두 데이터 프레임을 고려하십시오. 인쇄시R에서 dplyr을 사용한 후에 data.frame의 다이제스트가 변경되는 이유는 무엇입니까?
library(digest)
library(dplyr)
df1 <- tibble(a =1:5, b=11:15)
df2 <- df1 %>%
mutate(c=b-1) %>%
select(-c)
모두 data.frames는
> df1
# A tibble: 5 × 2
a b
<int> <int>
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
또는 비교 동일하다
> digest(df1)
[1] "4f82aa1035792a0acf304242ce6ad3ec"
> digest(df2)
[1] "3b7e697af67e8e36ba9b59aef69db304"
I :
> df1 ==df2
a b
[1,] TRUE TRUE
[2,] TRUE TRUE
[3,] TRUE TRUE
[4,] TRUE TRUE
[5,] TRUE TRUE
그러나 소화 기능이 상이한 결과를 리턴 발굴 기대 est 함수는 동일한 결과를 가져옵니다 !! 동일한 data.frames를 비교하는 더 좋은 방법이 있습니까?
고마워요! 'all_equal()'은 지금 트릭을해야합니다! Axeman이 지적한대로 속성 순서가 변경 되었기 때문에 data.frame 슬라이싱이 도움이 될 것입니다. – Mathias