[R] attr vs attributes

Rui Barradas ruipbarradas at sapo.pt
Fri May 10 16:50:55 CEST 2013


There's at least one example where only the form attr(x, "foo") <- "bar" 
would work, not the other form. If you want to set attributes 
programatically, use the first form, like in the function below. Note 
that the example is artificial.

setAttr <- function(x, attrib, value){
	attr(x, attrib) <- value

x <- 1:4
setAttr(x, "foo", "bar")

You cannot make

attribute(x)$attrib <- value

Hope this helps,

Rui Barradas

Em 09-05-2013 18:35, Murat Tasan escreveu:
> hi all -- i looked through the R Language Definition document, but couldn't
> find any particular warning or example that would clarify the best use of
> attribute setting for R objects.
> let x be some R object, and i'd like to add attribute "foo" with value
> "bar".
> case 1:
>> attr(x, "foo") <- "bar"
> case 2:
>> attributes(x)$foo <- "bar"
> in both cases, attributes(x) reveals the appropriate setting has taken
> place.
> i'm assuming that attr(...) is 'safer' in the sense that perhaps
> consistency checks are made?
> (almost like a generic accessor/setter method?)
> but i also haven't seen any examples where case 2 (above) would bad... is
> there are trivial such example out there?
> BTW -- the cause for interest here is when dealing with dendrogram objects,
> for which much of the useful data are stored as attributes, and where
> running dendrapply means having to explicitly set attribute values to
> retain the tree structure in the resulting object.
> cheers,
> -m
> 	[[alternative HTML version deleted]]
> ______________________________________________
> 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