My suggestion was based on the standard sort order of a factor. What I did as an example was to create a factor having your specified levels:
> x <- factor(sample(c("Unit","Achievement","Scholarship"), 10, TRUE)) > x [1] Achievement Unit Achievement Unit Scholarship Achievement Unit [8] Achievement Unit Unit Levels: Achievement Scholarship Unit This creates a factor with the default (sorted) order of levels. Then what I proposed works, since it is based on the standard behavior of factor. Now if you have to override this behavior, you will have to deal with the sorting problem, as Peter suggested. -Christos > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Rolf Turner > Sent: Wednesday, October 03, 2007 4:12 PM > To: Peter Dalgaard > Cc: r-help list > Subject: Re: [R] Factor levels. > > > On 4/10/2007, at 7:50 AM, Peter Dalgaard wrote: > > > Rolf Turner wrote: > >>> Does it even work? (What if it is the first or the 2nd > level that is > >>> absent? > >> > >> Yes it works. What's the problem? > >> > >> To beat it to death: if the second level of fff is > absent then > >> fff will consist entirely of 1's and 3's, > >> and so c("U","A","S")[fff] will consist entirely of > U's and S's. > >> I can then set the levels to be > >> c("U","A","S") and get what I want. > > You didn't say that fff was numeric. > > All factors are numeric. > > If fff is a factor, then we have the problem: > > > > > attach(read.table(stdin(),header=T)) > > 0: fff > > 1: Unit > > 2: Scholarship > > 3: Scholarship > > 4: Unit > > 5: > > > c("U","A","S")[fff] > > [1] "A" "U" "U" "A" > > My original fff is a factor with levels c > ("Unit","Achievement","Scholarship"). If you make that > adjustment, you get the ``right answer''. > > Actually we have another problem too, namely sort order.... > > No, there is no sort order problem. See above. > > [Given that the original fff has its levels in the > order specified > then Unit maps to U, > Achievement to A, and Scholarship to S.] > > cheers, > > Rolf > > P.S. ***Are*** there any risks/dangers in following Christos > Hatzis' suggestion of simply doing > > levels(fff) <- c("U","A","S") ??? > > ###################################################################### > Attention:\ This e-mail message is privileged and > confidenti...{{dropped}} > > ______________________________________________ > 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. > > ______________________________________________ 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.