... just for completeness - the more concise way: (no need to go through names()).
boxplot(mydata[,order(apply(mydata,2,median))]) ... or descending boxplot(mydata[,order(-apply(mydata,2,median))]) B. On Mar 21, 2015, at 7:04 PM, Boris Steipe <boris.ste...@utoronto.ca> wrote: > There may be more concise ways to do this - but you are 99% there with your > approach: > try: > > boxplot(mydata[,names(sort(apply(mydata,2,median)))]) > > B. > > > On Mar 21, 2015, at 6:49 PM, Antonio Silva <aolinto....@gmail.com> wrote: > >> Thanks Bill and David >> >> Here goes an example >> >> SP1<-c(9,6,7,8,5,8,7,5,9,7) >> SP2<-c(1,3,4,2,4,2,5,3,2,1) >> SP3<-c(4,6,7,5,7,8,7,6,5,4) >> SP4<-c(5,4,3,5,2,3,4,3,4,2) >> mydata<-data.frame(SP1,SP2,SP3,SP4) >> rownames(mydata)<-c("ST1","ST2","ST3","ST4","ST5","ST6","ST7","ST8","ST9","ST10") >> mydata >> boxplot(mydata) >> >> Note that this data frame does not have the format Response ~ Group. In my >> real matrix I have up to 40 species. >> >> Is there any way to have the species ordered by their median abundance (or >> other parameter?) >> >> The desired order is given by names(sort(apply(mydata,2,median))) >> >> Thanks once more, >> >> Antonio Olinto >> Fisheries Institute >> Sao Paulo, Brazil >> >> 2015-03-21 15:13 GMT-03:00 William Dunlap <wdun...@tibco.com>: >> >>> You can use the reorder() function to reorder the grouping vector's >>> factor levels according to a function of the data in each group. E.g., >>> compare the following two plots: >>> >>> d <- data.frame(Response=cos(1:15), Group=rep(c("A","B","C"),c(6,5,4))) >>> par(mfrow=c(1,2)) >>> boxplot(Response ~ Group, data=d) >>> boxplot(Response ~ reorder(Group, X=Response, FUN=median), data=d) >>> >>> >>> Bill Dunlap >>> TIBCO Software >>> wdunlap tibco.com >>> >>> On Fri, Mar 20, 2015 at 2:20 PM, Antonio Silva <aolinto....@gmail.com> >>> wrote: >>> >>>> Hello >>>> >>>> I'm using a dataframe (mydata) where row names are sampling points and >>>> column names are species in a multivariate analysis. >>>> >>>> If I write boxplot(mydata) I'll have boxplots for each species abundance >>>> in >>>> alphabetical order. >>>> >>>> How to get the boxes orderer by the median? >>>> >>>> Usually for this I write >>>> >>>> boxplot(value~category,at=rank(tapply(mydata$value,mydata$category,median))) >>>> but for this to work I need a column for the categories and another column >>>> for the values. >>>> >>>> Thanks in advance, best regards. >>>> >>>> Antonio Olinto >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> 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. >>>> >>> >>> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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 -- To UNSUBSCRIBE and more, see > 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 -- To UNSUBSCRIBE and more, see 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.