Dear R-Help Team, I have been trying to sort (all columns of) a matrix:> a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) > a[,1] [,2] [1,] 1 1 [2,] 3 3 [3,] 4 4 [4,] 6 6 [5,] 6 6 [6,] 4 4 [7,] 6 6 [8,] 56 56 [9,] 4 4 [10,] 64 64 [11,] 86 86 [12,] 39 39 [13,] 4 4 [14,] 2 2>I would like to have the matrix sorted and the output should again be *a matrix* with nrow=length(a) and ncol=2 just like (a) but only sorted. Whatever I try (be it sort(), order()...) I receive a vector of length(a)*2... Could you please help me? Best regards, kajan [[alternative HTML version deleted]]
Untested, but a.sorted <- apply(a,sort,2) ? Kajan Saied wrote:> Dear R-Help Team, > > I have been trying to sort (all columns of) a matrix: > >> a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) >> a > [,1] [,2] > [1,] 1 1 > [2,] 3 3 > [3,] 4 4 > [4,] 6 6 > [5,] 6 6 > [6,] 4 4 > [7,] 6 6 > [8,] 56 56 > [9,] 4 4 > [10,] 64 64 > [11,] 86 86 > [12,] 39 39 > [13,] 4 4 > [14,] 2 2 > I would like to have the matrix sorted and the output should again be *a > matrix* with nrow=length(a) and ncol=2 just like (a) but only > sorted. Whatever I try (be it sort(), order()...) I receive a vector of > length(a)*2... > > Could you please help me? > > Best regards, > > kajan > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.-- Don McKenzie Research Ecologist Pacific Wildland Fire Sciences Lab US Forest Service Affiliate Professor College of Forest Resources and CSES Climate Impacts Group University of Washington phone: 206-732-7824 cell: 206-321-5966 dmck at u.washington.edu
Try this: a[order(a[,1], a[,2]),] On Thu, Oct 8, 2009 at 1:50 PM, Kajan Saied <kajan.saied at gmail.com> wrote:> Dear R-Help Team, > > I have been trying to sort (all columns of) a matrix: > >> a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) >> a > ? ? ?[,1] [,2] > ?[1,] ? ?1 ? ?1 > ?[2,] ? ?3 ? ?3 > ?[3,] ? ?4 ? ?4 > ?[4,] ? ?6 ? ?6 > ?[5,] ? ?6 ? ?6 > ?[6,] ? ?4 ? ?4 > ?[7,] ? ?6 ? ?6 > ?[8,] ? 56 ? 56 > ?[9,] ? ?4 ? ?4 > [10,] ? 64 ? 64 > [11,] ? 86 ? 86 > [12,] ? 39 ? 39 > [13,] ? ?4 ? ?4 > [14,] ? ?2 ? ?2 >> > I would like to have the matrix sorted and the output should again be *a > matrix* with nrow=length(a) and ncol=2 just like (a) but only > sorted. Whatever I try (be it sort(), order()...) I receive a vector of > length(a)*2... > > Could you please help me? > > Best regards, > > kajan > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Henrique Dallazuanna Curitiba-Paran?-Brasil 25? 25' 40" S 49? 16' 22" O
You need to define "sorted" in the context of a matrix. By each row individually, by each column individually, or by column using the whole matrix, or by row using the whole matrix?> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] > On Behalf Of Kajan Saied > Sent: Thursday, October 08, 2009 11:51 AM > To: r-help at r-project.org > Subject: [R] sort (all columns of) a matrix > > Dear R-Help Team, > > I have been trying to sort (all columns of) a matrix: > > > a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) > > a > [,1] [,2] > [1,] 1 1 > [2,] 3 3 > [3,] 4 4 > [4,] 6 6 > [5,] 6 6 > [6,] 4 4 > [7,] 6 6 > [8,] 56 56 > [9,] 4 4 > [10,] 64 64 > [11,] 86 86 > [12,] 39 39 > [13,] 4 4 > [14,] 2 2 > > > I would like to have the matrix sorted and the output should again be *a > matrix* with nrow=length(a) and ncol=2 just like (a) but only > sorted. Whatever I try (be it sort(), order()...) I receive a vector of > length(a)*2... > > Could you please help me? > > Best regards, > > kajan > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.
I assume you want to sort the whole dataset (matrix) by ordering one column in ascending order (and order all other columns appropriately). a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) a #sort by first column a[order(a[,1]),] #sort by second column a[order(a[,2]),] #both give the same result here because the columns are identical HTH, Daniel ------------------------- cuncta stricte discussurus ------------------------- -----Urspr?ngliche Nachricht----- Von: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] Im Auftrag von Kajan Saied Gesendet: Thursday, October 08, 2009 12:51 PM An: r-help at r-project.org Betreff: [R] sort (all columns of) a matrix Dear R-Help Team, I have been trying to sort (all columns of) a matrix:> a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) > a[,1] [,2] [1,] 1 1 [2,] 3 3 [3,] 4 4 [4,] 6 6 [5,] 6 6 [6,] 4 4 [7,] 6 6 [8,] 56 56 [9,] 4 4 [10,] 64 64 [11,] 86 86 [12,] 39 39 [13,] 4 4 [14,] 2 2>I would like to have the matrix sorted and the output should again be *a matrix* with nrow=length(a) and ncol=2 just like (a) but only sorted. Whatever I try (be it sort(), order()...) I receive a vector of length(a)*2... Could you please help me? Best regards, kajan [[alternative HTML version deleted]] ______________________________________________ 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.
Right. My guess is that Kajan wants: a[do.call(order,data.frame(a)),] ## this generalizes to an arbitrary number of columns ## do.call() is a very powerful and useful R feature worth learning about Yet another reason why the posting guide asks for a simple, proper, reproducible example. -- Bert Bert Gunter Genentech Nonclinical Biostatistics -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Erik Iverson Sent: Thursday, October 08, 2009 11:28 AM To: Kajan Saied; r-help at r-project.org Subject: Re: [R] sort (all columns of) a matrix You need to define "sorted" in the context of a matrix. By each row individually, by each column individually, or by column using the whole matrix, or by row using the whole matrix?> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] > On Behalf Of Kajan Saied > Sent: Thursday, October 08, 2009 11:51 AM > To: r-help at r-project.org > Subject: [R] sort (all columns of) a matrix > > Dear R-Help Team, > > I have been trying to sort (all columns of) a matrix: > > > a<-matrix(a<-c(1,3,4,6,6,4,6,56,4,64,86,39,4,2),length(a),2) > > a > [,1] [,2] > [1,] 1 1 > [2,] 3 3 > [3,] 4 4 > [4,] 6 6 > [5,] 6 6 > [6,] 4 4 > [7,] 6 6 > [8,] 56 56 > [9,] 4 4 > [10,] 64 64 > [11,] 86 86 > [12,] 39 39 > [13,] 4 4 > [14,] 2 2 > > > I would like to have the matrix sorted and the output should again be *a > matrix* with nrow=length(a) and ncol=2 just like (a) but only > sorted. Whatever I try (be it sort(), order()...) I receive a vector of > length(a)*2... > > Could you please help me? > > Best regards, > > kajan > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.______________________________________________ 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.