[R] Order of columns(variables) in dataframe
(Ted Harding)
Ted.Harding at manchester.ac.uk
Sun Jul 20 13:53:45 CEST 2008
On 20-Jul-08 11:32:14, Daniel Wagner wrote:
> Dear R experts,
> I have a dataframe withÂ_4 columns (variables). I want to redorder (or
> reposition) these columns on the basis of a value in its last row. e.g.
> df1<-data.frame( v1= c(2,3,1,9,5), v2=c(8,5,12,4,11), v3=c(7,8,2,6,9),
> v4=c(1,4,6,3,6))
>
> I wanto to get the order of df1 on the basis of value in last row
> (descending order) like
>
> [Sorry, had to delete your examples because of intrusive special
> characters, but reproduced below anyway]
>
> Could somebody help me?
> Daniel
> Amsterdam
Try the following. It seems one needs to pass from dataframe to
matrix, since sort() does not like lists! Maybe others know better ...
df1<-data.frame( v1= c(2,3,1,9,5), v2=c(8,5,12,4,11),
v3=c(7,8,2,6,9), v4=c(1,4,6,3,6))
df1
# v1 v2 v3 v4
# 1 2 8 7 1
# 2 3 5 8 4
# 3 1 12 2 6
# 4 9 4 6 3
# 5 5 11 9 6
M<-as.matrix(df1)
L<-M[nrow(M),]
ix<-sort(L,decreasing=TRUE,index.return=TRUE)$ix
df2<-as.data.frame(M[,ix])
df2
# v2 v3 v4 v1
# 1 8 7 1 2
# 2 5 8 4 3
# 3 12 2 6 1
# 4 4 6 3 9
# 5 11 9 6 5
Hoping this helps,
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 20-Jul-08 Time: 12:52:12
------------------------------ XFMail ------------------------------
More information about the R-help
mailing list