Peter, Gabor: thanks to both of you. This 'unique' function is what I was looking for !
Peter Alspach a écrit : > Sebastain > > Does the following work for you? > > seb <- read.table(file='clipboard', header=T) > seb$c > [1] w k r s k p l u z s j j x r d j x w q f > Levels: d f j k l p q r s u w x z > seb$c <- factor(seb$c, levels=unique(seb$c)) > seb$c > [1] w k r s k p l u z s j j x r d j x w q f > Levels: w k r s p l u z j x d q f > > Peter Alspach > > > >> -----Original Message----- >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On Behalf Of Sébastien >> Sent: Wednesday, 29 August 2007 9:00 a.m. >> To: Gabor Grothendieck >> Cc: R-help >> Subject: Re: [R] Factor levels >> >> Ok, I cannot send to you one of my dataset since they are >> confidential. >> But I can produce a dummy "mini" dataset to illustrate my question. >> Let's say I have a csv file with 3 columns and 20 rows which >> content is reproduced by the following line. >> >> > mydata<-data.frame(a=1:20, >> b=sample(100:200,20,replace=T),c=sample(letters[1:26], 20, >> replace = T)) > mydata >> a b c >> 1 1 176 w >> 2 2 141 k >> 3 3 172 r >> 4 4 182 s >> 5 5 123 k >> 6 6 153 p >> 7 7 176 l >> 8 8 170 u >> 9 9 140 z >> 10 10 194 s >> 11 11 164 j >> 12 12 100 j >> 13 13 127 x >> 14 14 137 r >> 15 15 198 d >> 16 16 173 j >> 17 17 113 x >> 18 18 144 w >> 19 19 198 q >> 20 20 122 f >> >> If I had to read the csv file, I would use something like: >> mydata<-data.frame(read.table(file="c:/test.csv",header=T)) >> >> Now, if you look at mydata$c, the levels are alphabetically ordered. >> > mydata$c >> [1] w k r s k p l u z s j j x r d j x w q f >> Levels: d f j k l p q r s u w x z >> >> What I am trying to do is to reorder the levels as to have >> them in the order they appear in the table, ie >> Levels: w k r s p l u z j x d q f >> >> Again, keep in mind that my script should be used on datasets >> which content are unknown to me. In my example, I have used >> letters for mydata$c, but my code may have to handle factors >> of numeric or character values (I need to transform specific >> columns of my dataset into factors for plotting purposes). My >> goal is to let the code scan the content of each factor of my >> data.frame during or after the read.table step and reorder >> their levels automatically without having to ask the user to >> hard-code the level order. >> >> In a way, my problem is more related to the way the factor >> levels are ordered than to the read.table function, although >> I guess there is a link... >> >> Gabor Grothendieck a écrit : >> >>> Its not clear from your description what you want >>> > > [[alternative HTML version deleted]]
______________________________________________ R-help@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 and provide commented, minimal, self-contained, reproducible code.