I have a data frame MyData with 2 variables. One of the variables (String) contains a string of letters. How can I resort MyData by MyData$String (alphabetically) and then save the output as a sorted data file? I tried: o<-order(MyData$String) SortedData<-rbind(MyData$String[o], MyData$Value[o]) write.table(SortedData,file="Sorted.txt",sep="\t",quote=F, row.names=F) However, all strings get replaced with digits (1 for the first string, 2 for the second string etc.). How can I keep the strings instead of digits? Thank you! Dimitri
Dimitri Liakhovitski wrote:> I have a data frame MyData with 2 variables. > One of the variables (String) contains a string of letters. > How can I resort MyData by MyData$String (alphabetically) and then > save the output as a sorted data file? > > I tried: > > o<-order(MyData$String) > SortedData<-rbind(MyData$String[o], MyData$Value[o]) > write.table(SortedData,file="Sorted.txt",sep="\t",quote=F, row.names=F) > > > However, all strings get replaced with digits (1 for the first string, > 2 for the second string etc.). How can I keep the strings instead of > digits? >Why on earth are you trying to rbind() things together? Anything wrong with SortedData <- MyData[o,] write.table(SortedData,...whatever...) ?> Thank you! > Dimitri > > ______________________________________________ > 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 > and provide commented, minimal, self-contained, reproducible code. >
Dimitri If you try> order(c("b","a","c"))[1] 2 1 3 or> sort(c("b","a","c"))[1] "a" "b" "c" You will see that sort() and order() DO respect character order. Your problem could be that your data frame variable is not a character but a factor (the default for read.table, for example) Check the class of the variable. If it is a factor, try order(as.vector(String)) This will also work if String is a character vector; as.vector will just return the character variable.>>> "Dimitri Liakhovitski" <ld7631 at gmail.com> 17/07/2007 18:56:00 >>>I have a data frame MyData with 2 variables. One of the variables (String) contains a string of letters. How can I resort MyData by MyData$String (alphabetically) and then save the output as a sorted data file? I tried: o<-order(MyData$String) SortedData<-rbind(MyData$String[o], MyData$Value[o]) write.table(SortedData,file="Sorted.txt",sep="\t",quote=F, row.names=F) However, all strings get replaced with digits (1 for the first string, 2 for the second string etc.). How can I keep the strings instead of digits? Thank you! Dimitri ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code. ******************************************************************* This email and any attachments are confidential. Any use, co...{{dropped}}