[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