> -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > On Behalf Of Rolf Turner > Sent: Thursday, August 11, 2011 5:24 PM > To: Heinz Tuechler > Cc: Zeki Çatav; r-help@r-project.org; Uwe Ligges > Subject: Re: [R] value.labels > > On 12/08/11 12:53, Heinz Tuechler wrote: > > At 12.08.2011 11:05 +1200, Rolf Turner wrote: > >> On 12/08/11 11:34, Heinz Tuechler wrote: > >>> At 12.08.2011 09:11 +1200, Rolf Turner wrote: > >>>> On 12/08/11 09:59, Heinz Tuechler wrote: > >>>>> At 11.08.2011 21:50 +0300, Zeki Çatav wrote: > >>>>>> PrÅŸ, 2011-08-11 tarihinde 19:27 +0200 saatinde, Uwe Ligges yazdı: > >>>>>> > > >>>>>> > On 11.08.2011 19:22, David Winsemius wrote: > >>>>>> > > > >>>>>> > > On Aug 11, 2011, at 11:42 AM, Uwe Ligges wrote: > >>>>>> > > > >>>>>> > >> > >>>>>> > >> > >>>>>> > >> On 11.08.2011 16:10, zcatav wrote: > >>>>>> > >>> Hello R people, > >>>>>> > >>> > >>>>>> > >>> I have a "data.frame". Status variable has 3 values. 0- > >alive, > >>>>>> > >>> 1->dead and > >>>>>> > >>> 2->missed.......................... > >>>>>> > ......................................... > >>>>>> > As I understood the question, just how to rename the levels was > >>>>>> the > >>>>>> > original question. > >>>>>> > > >>>>>> > Uwe > >>>>>> > >>>>>> I don't want to rename levels or converting from numeric to > >>>>>> string. I > >>>>>> want to add each corresponding levels value, a label, as in SPSS. > >>>>>> Level 0 labeled with alive, > >>>>>> level 1 labeled with dead and > >>>>>> level 2 labeled with missed. > >>>>> > >>>>> This is not possible with a factor, because factor levels can only > >>>>> be positive integers. > >>>> > >>>> That is just plain (ridiculously) wrong. RTFM. > >>>> > >>>> cheers, > >>>> > >>>> Rolf Turner > >>> > >>> So, how would you construct a factor with levels 0, 1, 2 and labels > >>> alive, dead, and missed, as the original post asked for? > >>> > >>> Heinz > >> > >> As I said, RTFM. But for completeness: > >> > >> x <- sample(0:2,100,TRUE) > >> y <- factor(x,labels=c("alive","dead","missed")) > >> > >> Duhhh. > >> > >> cheers, > >> > >> Rolf Turner > > > > Maybe you would like to look at the structure. > > > > str(y) > > Factor w/ 3 levels "alive","dead",..: 3 1 2 2 3 3 2 1 1 1 ... > > > > or > > > > dput(y) > > structure(c(3L, 1L, 2L, 2L, 3L, 3L, 2L, 1L, 1L, 1L, 2L, 1L, 3L, > > 1L, 2L, 3L, 2L, 2L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 1L, 2L, 1L, > > 1L, 3L, 1L, 2L, 3L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 3L, > > 2L, 1L, 2L, 3L, 3L, 2L, 1L, 1L, 2L, 3L, 3L, 2L, 1L, 3L, 1L, 1L, > > 2L, 2L, 1L, 2L, 1L, 2L, 3L, 3L, 3L, 2L, 3L, 3L, 1L, 2L, 3L, 2L, > > 3L, 1L, 3L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 3L, 2L, 2L, 1L, 1L, 1L, > > 2L, 3L, 3L, 2L, 1L, 2L, 3L), .Label = c("alive", "dead", "missed" > > ), class = "factor") > > > > > > > Anything else but positive integers? > > > > You clearly do not understand factors. RTFM. > > cheers, > > Rolf Turner >
Rolf, Clearly, someone doesn't understand something, and it may be me. I understood the OP to be asking if there was a way of adding labels to specific variable values without changing the underlying values (like a format in SAS or apparently "value labels" in SPSS). To use your example x <- sample(0:2,100,TRUE) The OP wanted to "associate" the label "alive" with the value 0, but didn't want the underlying value in x to change. The construction y <- factor(x,labels=c("alive","dead","missed")) creates a factor, y, where the underlying factor value is 1 and the label is "alive" where x had the value of 0. Without retaining the vector x, or knowing how y was created, one can't get back to the original value of 0. I am agnostic about whether that is good or bad, but it seems that your approach does not meet the OP's original request. Am I missing someting? Dan Daniel Nordlund Bothell, WA USA ______________________________________________ R-help@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.