[R] identical()

Erik Iverson eriki at ccbr.umn.edu
Mon Aug 16 23:53:37 CEST 2010


Hello,

array chip wrote:
> Hi, I am really puzzled by this. hope someone can help me
> 
> I have a 2 small data frames "a" and "b" derived from a larger data frames. They 
> look exactly the same to me, but identical() always returns FALSE.
> 
>> a
>          a b
> 2 10011048 L
> 4 10011048 R
> 6 10011049 L
> 8 10011049 R
>> b
>          a b
> 1 10011048 L
> 3 10011048 R
> 5 10011049 L
> 7 10011049 R
> 
>> identical(a,b)
> [1] FALSE

Do these really look "exactly the same" to you?

The first column (the row.names) are clearly different, thus they are
not identical.

See ?row.names

> 
> some information about the attributes of the 2 data frames:
> 
>> class(a)
> [1] "data.frame"
>> class(b)
> [1] "data.frame"
>> class(a$a)
> [1] "integer"
>> class(a$b)
> [1] "character"
>> class(b$a)
> [1] "integer"
>> class(b$b)
> [1] "character"
> 
> 
> However, if I generate these 2 data frame from scratches, identical() would 
> returns TRUE
> 
>> x<-as.data.frame(cbind(a=c(10011048,10011048,10011049,10011049),b=c('L','R','L','R')))
>> )
>> y<-as.data.frame(cbind(a=c(10011048,10011048,10011049,10011049),b=c('L','R','L','R')))
>> )
> 
>> identical(x,y)
> [1] TRUE
> 
> Looks like a & b objects takes some invisible residual information from the 
> larger data frame where they were derived, which is not the same between them. 
> But what is it?
> 
> Thanks
> 
> John
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list