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

Jonathan Dushoff dushoff at mcmaster.ca
Fri Nov 16 00:59:39 CET 2012


Thanks for all of these useful answers.

Thanks also to Ben Bolker, who told me offline that c() is a general
way to access the "main" part of an object (not tested).

I also tried:

> identical(matrix(tm), matrix(tmm))
[1] TRUE

which also works, but does _not_ solve the problem Rolf warns about
below (to my disappointment).

JD

On Thu, Nov 15, 2012 at 6:47 PM, Rolf Turner <rolf.turner at xtra.co.nz> wrote:

> 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