Skip to content

Order of columns(variables) in dataframe

4 messages · Daniel Wagner, jim holtman, Dimitris Rizopoulos +1 more

#
Is this what you want:
+ 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"), header=TRUE)
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
On Sun, Jul 20, 2008 at 7:32 AM, Daniel Wagner <danieljm1976 at yahoo.com> wrote:

  
    
#
try this:

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))
vals <- unlist(df1[5, ])
df1[order(vals, decreasing = TRUE)]


I hope it helps.

Best,
Dimitris

----
Dimitris Rizopoulos
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
      http://perswww.kuleuven.be/dimitris_rizopoulos/


Quoting Daniel Wagner <danieljm1976 at yahoo.com>:
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
#
On 20-Jul-08 11:32:14, Daniel Wagner wrote:
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 ------------------------------