Hi Ramón, It is for the column index. For ex: tags_totals[order(tags_totals[,1],decreasing=TRUE),1,drop=FALSE] #same as previous solution as there is only one column. # [,1] #Grupos 23 #Wikis 15 #Glosarios 11 #Bases de datos 7 #Taller 5
order(tags_totals[,1],decreasing=TRUE) #creates the row index #If you don't specify the column index, it will select all the columns. tags_totals[1,1] #Wikis # 15 tags_totals[1,1,drop=FALSE] # [,1] #Wikis 15 tags_totals[1,,drop=FALSE] # [,1] #Wikis 15 is.matrix(tags_totals[1,1]) #[1] FALSE is.matrix(tags_totals[1,1,drop=FALSE]) #[1] TRUE A.K. Many thanks Arun, This is important for me because I will need to do this operation many times. However, there is one thing that intrigues me. Why it is necessary to put two commas in a row? > tags_totals[order(tags_totals[,1],decreasing=TRUE),,drop=FALSE] [,1] Grupos 23 Wikis 15 Glosarios 11 Bases de datos 7 Taller 5 > tags_totals[order(tags_totals[,1],decreasing=TRUE),drop=FALSE] [1] 23 15 11 7 5 I've been reading around trrying to undestand it, but I can't see the logic. Many thanks ----- Original Message ----- From: arun <smartpink...@yahoo.com> To: R help <r-help@r-project.org> Cc: Sent: Friday, August 30, 2013 9:27 AM Subject: Re: Ordering a matrix (and not losing the rownames) Hi Ramón, May be this helps: tags_totals<-matrix(c(15,11,23,7,5),ncol=1,dimnames=list(c("Wikis","Glosarios","Grupos","Bases de datos","Taller"),NULL)) tags_totals[order(tags_totals[,1],decreasing=TRUE),,drop=FALSE] # [,1] #Grupos 23 #Wikis 15 #Glosarios 11 #Bases de datos 7 #Taller 5 A.K. Hello, I have a matrix like this: > tags_totals [,1] Wikis 15 Glosarios 11 Grupos 23 Bases de datos 7 Taller 5 And I want to order by the value of the first column. I do this: ordered_matrix <- as.matrix(tags_totals[order(tags_totals[,1],decreasing=TRUE)]) It orders alright, but I lose the rownames, that I need for the graphics > ordered_matrix [,1] [1,] 23 [2,] 15 [3,] 11 [4,] 7 [5,] 5 > rownames(ordered_matrix) NULL If I try to do it after converting to a dataframe I get an error that I don't understand: > tags_totals_frame <- as.data.frame(tags_totals) > tags_totals_frame[,1] [1] 15 11 23 7 5 > ordered_frame <- > tags_totals_frame[order(tags_totals_frame[,1],decreasing=TRUE)] Error en `[.data.frame`(tags_totals_frame, order(tags_totals_frame[, 1], : undefined columns selected Thanks on any help, -- ================================== Ramón Ovelar Campus Virtual Birtuala UPV/EHU Tel: (34) 94 601 3407 http://campusvirtual.ehu.es ______________________________________________ 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.