Here is one way of doing it by 'skipping' the first column which is a factor and your 'time':
> x <- read.table(textConnection(" time met-a met-b met-c + 00:00 42 18 99 + 00:05 88 16 67 + 00:10 80 27 84"), header=TRUE) > x.mean <- colMeans(x[-1]) > x.new <- x[,c('time', names(sort(x.mean, decreasing=TRUE)))] > > x.new time met.c met.a met.b 1 00:00 99 42 18 2 00:05 67 88 16 3 00:10 84 80 27 > On 9/4/07, Lynn Osburn <[EMAIL PROTECTED]> wrote: > > I read from external data source containing several columns. Each column > represents value of a metric. The columns are time series data. > > I want to sort the resulting dataframe such that the column with the largest > mean is the leftmost column, descending in colMean values to the right. > > I see many solutions for sorting rows based on some column characteristic, > but haven't found any discussion of sorting columns based on column > characteristics. > > viz. input data looks like this > time met-a met-b met-c > 00:00 42 18 99 > 00:05 88 16 67 > 00:10 80 27 84 > > desired output: > time met-c met-a met-b > 00:00 99 42 18 > 00:05 67 88 16 > 00:10 84 80 27 > > Thanks, > -Lynn > > -- > View this message in context: > http://www.nabble.com/Howto-sort-dataframe-columns-by-colMeans-tf4380044.html#a12485729 > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@stat.math.ethz.ch 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? ______________________________________________ R-help@stat.math.ethz.ch 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.