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 ______________________________________________ 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.