[R] Sort 1-column dataframe with rownames

Achim Zeileis Achim.Zeileis at uibk.ac.at
Fri Jun 8 09:30:42 CEST 2012


On Fri, 8 Jun 2012, Johannes Radinger wrote:

> Hi,
>
> I have a 1-column dataframe with rownames and I want to sort it
> based on the single column. The typical procedure that is recommended
> in diverse posts is to use order in the index. But that "destroys" my
> dataframe structure. Probabaly it is a very simple solution. Here is a
> short reproducable example:
>
> x <- c(1,3,51,2,34,44,12,33,2,8)
>
> df <- data.frame(x)
> rownames(df) <- c("A","B","C","D","E","F","G","H","I","J")
>
> df.sort <- df[order(df[,"x"]),]

If you select a single column, then the default is to drop the data.frame 
property. You exploit this in your own code in df[,"x"] which yields a 
simple vector. To suppress this behavior you can set drop = FALSE:

df.sort <- df[order(df[,"x"]), , drop = FALSE]

hth,
Z

> /Johannes
> -- 
>
> Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list