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 ______________________________________________ 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.