[R] How to call a value labels attribute?

Dimitrios Rizopoulos Dimitris.Rizopoulos at med.kuleuven.be
Sun Jun 4 17:01:28 CEST 2006


maybe you could consider something like the following:

varlabs <- function(x){
    if (is.null(names(x))) NULL else x[!duplicated(x)]
}
"varlabs<-" <- function(x, value){
    names(x) <- names(value[x])
    x
}
###############
x <- c(1, 2, 3, 3, 2, 3, 1)
x
varlabs(x)
varlabs(x) <- c(apple=1, banana=2, "NA"=3)
x
varlabs(x)
varlabs(x) <- c(Apfel=1, Banane=2, Birne=3)
x
varlabs(x)


I hope it helps.

Best,
Dimitris

---- 
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
     http://www.student.kuleuven.be/~m0390867/dimitris.htm


Quoting Heinz Tuechler <tuechler at gmx.at>:

> At 14:12 03.06.2006 +0200, Martin Maechler wrote:
> >>>>>> "Heinz" == Heinz Tuechler <tuechler at gmx.at>
> >>>>>>     on Tue, 23 May 2006 01:17:21 +0100 writes:
> >
> >    Heinz> Dear All, after searching on CRAN I got the
> >    Heinz> impression that there is no standard way in R to
> >    Heinz> label values of a numerical variable.  
> >
> >Hmm, there's  names(.)  and  "names(.) <- .."
> >Why are those not sufficient?
> >
> >x <- 1:3
> >names(x) <- c("apple", "banana", NA)
> 
> Martin,
> 
> I will considere this. For now I am using an attribute value.labels
> and a
> corresponding class to preserve this and other attributes after
> inclusion
> in a data.frame and indexing/subsetting, but using names should do as
> well.
> My idea was more like defining a set of value labels for a variable
> and
> apply it to all the variable, as e.g. in the following _pseudocode_:
> 
> ### not run
> ### pseudocode
> x <- c(1, 2, 3, 3, 2, 3, 1)
> value.labels(x) <- c(apple=1, banana=2, NA=3)
> x
> ### desired result
> apple banana  NA  NA banana NA apple
>     1      2   3   3      2  3     1
> 
> value.labels(x) <- c(Apfel=1, Banane=2, Birne=3) # redefine labels
> x
> ### desired result
> Apfel Banane Birne Birne Banane Birne Apfel
>     1      2     3     3      2     3     1
> 
> value.labels(x) # inspect labels
> ### desired result
> Apfel Banane Birne
>     1      2     3
> 
> These value.labels should persist even after inclusion in a
> data.frame and
> after indexing/subsetting.
> I did not yet try your idea concerning these aspects, but I will do
> it. My
> final goal is to do all the data handling on numerically coded
> variables
> and to transform to factors "on the fly" when needed for statistical
> procedures. Given the presence of value.labels a factor function
> could use
> them for the conversion.
> 
> I described my motivation for all this in a previous post, titled:
> How to represent a metric categorical variable?
> There was no response at all and I wonder, if this is such a rare
> problem.
> 
> Thanks,
> Heinz
> 
> >
> >
> >    Heinz> Since this
> >    Heinz> would be useful for me I intend to create such an
> >    Heinz> attribute, at the moment for my personal use.  Still
> >    Heinz> I would like to choose a name which does not conflict
> >    Heinz> with names of commonly used attributes.
> >
> >    Heinz> Would value.labels or vallabs create conflicts?
> >
> >    Heinz> The attribute should be structured as data.frame with
> >    Heinz> two columns, levels (numeric) and labels
> >    Heinz> (character). These could then also be used to
> >    Heinz> transform from numeric to factor. If the attribute is
> >    Heinz> copied to the factor variable it could also serve to
> >    Heinz> retransform the factor to the original numerical
> >    Heinz> variable.
> >
> >    Heinz> Comments? Ideas?
> >
> >    Heinz> Thanks
> >
> >    Heinz> Heinz Tüchler
> >
> >    Heinz> ______________________________________________
> >    Heinz> R-help at stat.math.ethz.ch mailing list
> >    Heinz> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE
> >    Heinz> do read the posting guide!
> >    Heinz> http://www.R-project.org/posting-guide.html
> >
> >
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> 
> 


Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm



More information about the R-help mailing list