[R] Selecting the "non-attribute" part of an object

Rolf Turner rolf.turner at xtra.co.nz
Fri Nov 16 00:47:07 CET 2012


I think that what you are looking for is:

     all.equal(tm,tmm,check.attributes=FALSE)

But BEWARE:

     m   <- matrix(1:36,4,9)
     mm <- matrix(1:36,12,3)
     all.equal(m,mm,check.attributes=FALSE)

gives TRUE!!!  I.e. sometimes attributes really are vital characteristics.

     cheers,

         Rolf Turner

On 16/11/12 08:52, Jonathan Dushoff wrote:
> I have two matrices, generated by R functions that I don't understand.
>   I want to confirm that they're the same, but I know that they have
> different attributes.
>
> If I want to compare the dimnames, I can say
>
>> identical(attr(tm, "dimnames"), attr(tmm, "dimnames"))
> [1] FALSE
>
> or even:
>
>> identical(dimnames(tm), dimnames(tmm))
> [1] FALSE
>
> But I can't find any good way to compare the "main" part of objects.
>
> What I'm doing now is:
>
>> tm_new <- tm
>> tmm_new <- tmm
>> attributes(tm_new) <- attributes(tmm_new) <- NULL
>> identical(tm_new, tmm_new)
> [1] TRUE
>
> But that seems very inaesthetic, besides requiring that I create two
> pointless objects.
>
> I have read ?attributes, ?attr and some web introductions to how R
> objects work, but have not found an answer.
>
> Thanks for any help.
>
> ______________________________________________
> 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