On Sun, Jun 10, 2012 at 2:22 PM, arun <smartpink...@yahoo.com> wrote: > Hi Bert, > > I tried the code. > > dat2<-data.frame(dat1) >> do.call(order,dat2) > [1] 3 6 1 10 2 5 7 9 8 4 > > > Here, I get the order of 1st column as a list. Is there anything I am > missing here? No you don't. You get a vector of row indices, but ...
My oversight. Subscript the rows of dat2 by this: dat2[do.call(order,dat2) , ] -- Bert > > Thanks, > A.K. > > > > > ----- Original Message ----- > From: Bert Gunter <gunter.ber...@gene.com> > To: arun <smartpink...@yahoo.com> > Cc: Trying To learn again <tryingtolearnag...@gmail.com>; R help > <r-help@r-project.org> > Sent: Sunday, June 10, 2012 4:47 PM > Subject: Re: [R] Order all the columns ascending elements on a matrix or a > data frame > > Inline ... > > -- Bert > > On Sun, Jun 10, 2012 at 10:46 AM, arun <smartpink...@yahoo.com> wrote: >> Hi, >> >> If your intention is to order the first column by ascending, then by 2nd and >> so on.. >> Try this. >> >> set.seed(1) >> dat1<-cbind(x=rnorm(10,5,0.5),y=runif(10,0.4),z=rnorm(10,15,0.2)) >> dat1 >> x y z >> [1,] 4.686773 0.9608231 14.99101 >> [2,] 5.091822 0.5272855 14.99676 >> [3,] 4.582186 0.7910043 15.18877 >> [4,] 5.797640 0.4753331 15.16424 >> [5,] 5.164754 0.5603324 15.11878 >> [6,] 4.589766 0.6316685 15.18380 >> [7,] 5.243715 0.4080342 15.15643 >> [8,] 5.369162 0.6294328 15.01491 >> [9,] 5.287891 0.9218145 14.60213 >> [10,] 4.847306 0.6042094 15.12397 >> >> dat1[order(dat1[,1],dat1[,2],dat1[,3]),] > > ## if dat1 is a data frame, e.g. > > dat1 <- data.frame(dat1) > > ## This can be shortened to: > > do.call(order,dat1) > > ?do.call > > -- Bert > >> x y z >> [1,] 4.582186 0.7910043 15.18877 >> [2,] 4.589766 0.6316685 15.18380 >> [3,] 4.686773 0.9608231 14.99101 >> [4,] 4.847306 0.6042094 15.12397 >> [5,] 5.091822 0.5272855 14.99676 >> [6,] 5.164754 0.5603324 15.11878 >> [7,] 5.243715 0.4080342 15.15643 >> [8,] 5.287891 0.9218145 14.60213 >> [9,] 5.369162 0.6294328 15.01491 >> [10,] 5.797640 0.4753331 15.16424 >> >> >> >> But, if it is like to order all the columns at once, >> >> apply(dat1,2,sort) >> >> x y z >> [1,] 4.582186 0.4080342 14.60213 >> [2,] 4.589766 0.4753331 14.99101 >> [3,] 4.686773 0.5272855 14.99676 >> [4,] 4.847306 0.5603324 15.01491 >> [5,] 5.091822 0.6042094 15.11878 >> [6,] 5.164754 0.6294328 15.12397 >> [7,] 5.243715 0.6316685 15.15643 >> [8,] 5.287891 0.7910043 15.16424 >> [9,] 5.369162 0.9218145 15.18380 >> [10,] 5.797640 0.9608231 15.18877 >> >> Here, the all columns are sorted to ascending, but only problem is that the >> corresponding elements in each of the rows in the original dataset has also >> changed. >> >> >> A.K. >> >> >> >> >> ----- Original Message ----- >> From: Trying To learn again <tryingtolearnag...@gmail.com> >> To: r-help@r-project.org >> Cc: >> Sent: Sunday, June 10, 2012 2:36 AM >> Subject: [R] Order all the columns ascending elements on a matrix or a data >> frame >> >> Imagine I have a csv KT.csv >> >> I want to create a new dataframe o convert KT in a matrix and create a new >> matrix with each column of KT ordered by ascending order. >> >> I have tried to make this >> >> b<-read.csv("KT.csv") >> >> >> for(i in 1:ncol(b)){ >> >> b[,i]<-sort(b[,i]) >> >> } >> >> But it puts a message that the number of rows doesn´t correspond. >> >> Can someone give me a clue on how to order. >> >> Many Thaks. >> >> ______________________________________________ >> R-help@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. >> >> >> ______________________________________________ >> R-help@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. > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > Internal Contact Info: > Phone: 467-7374 > Website: > http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm > -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm ______________________________________________ R-help@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.