Message-ID: <50A57EFB.9010307@xtra.co.nz>
Date: 2012-11-15T23:47:07Z
From: Rolf Turner
Subject: Selecting the "non-attribute" part of an object
In-Reply-To: <CALF-=ELC253m_RwtDBU8p4FBhcL2K=792k4GX0+Xc_rOEQM+XQ@mail.gmail.com>
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.
>