[R] retrieving object name

Laurent Deniau laurent.deniau at cern.ch
Mon Jul 10 17:19:07 CEST 2006


Prof Brian Ripley wrote:
> On Mon, 10 Jul 2006, Laurent Deniau wrote:
> 
>> I have a data frame with named columns and I would like to know if it is
>> possible to retrieve a column name once selected:
> 
> 
> Not really.  df$col1 is a new object which does not know where it came 
> from.
> 
> If you wanted to do this before selection, then
> 
> print.name <- function(df, col)
>   struture(df[[col]], from=col)
> 
> would do the extraction and set an attribute to be consulted later.

This is an appropriate solution since I build the list myself (by 
splitting the data frame following some factors) but I do not call the 
function myself (e.g. print.name). Here is the final steps of the 
function which read and set the data.frame/list:

magnet.read.rt <- function (filename) {
   # ...

   # convert to list by magnet states
   MG <- split(MG,MG$magnet_state)

   # set state attribute for automatic settings
   for(col in names(MG))
     MG[[col]] <- structure(MG[[col]], state=col)

   invisible(MG)
}

and an example of its use:

.wc.scl <- function (MG) {
   c(CC=0.85, CM=1.0)[attr(MG,"state")]
}

wc.offset <- function (CM,CR) {
   scl <- .wc.scl(CM)
   #...
}

MB <- magnet.read.rt("magnet.dat")
CC.INJ <- wc.offset(MB$CC,MB$INJ)

Thanks.

a+, ld.



More information about the R-help mailing list