[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