HI, You are right. It is slower when compared to Pete's solution: set.seed(125) x <- matrix(sample(1:800000),nrow=1000) colnames(x)<- paste("Col",1:ncol(x),sep="")
system.time({ res<-sapply(data.frame(x),function(x) c(summary(x),sd=sd(x),IQR=IQR(x))) res1<-as.matrix(res) res2<-res1[c(1:4,7,5,8,6),] }) # user system elapsed # 0.596 0.000 0.597 system.time({ res<-apply(x,2,function(x) c(Min=min(x), "1st Qu" =quantile(x, 0.25,names=FALSE), Median = quantile(x, 0.5, names=FALSE), Mean= mean(x), Sd=sd(x), "3rd Qu" = quantile(x,0.75,names=FALSE), IQR=IQR(x), Max = max(x))) }) # user system elapsed # 0.384 0.000 0.384 A.K. ----- Original Message ----- From: Pete Brecknock <peter.breckn...@bp.com> To: r-help@r-project.org Cc: Sent: Friday, November 23, 2012 8:42 AM Subject: Re: [R] Summary statistics for matrix columns frespider wrote > Hi, > > it is possible. but don't you think it will slow the code if you convert > to data.frame? > > Thanks > > Date: Thu, 22 Nov 2012 18:31:35 -0800 > From: > ml-node+s789695n4650500h51@.nabble > To: > frespider@ > Subject: RE: Summary statistics for matrix columns > > > > HI, > > Is it possible to use as.matrix()? > > res<-sapply(data.frame(x),function(x) c(summary(x),sd=sd(x),IQR=IQR(x))) > > res1<-as.matrix(res) > > is.matrix(res1) > > #[1] TRUE > > res1[c(1:4,7,5,8,6),] > > # Col1 Col2 Col3 Col4 Col5 Col6 Col7 > Col8 > > #Min. 10.00000 1.00000 17.00000 3.00000 18.00000 11.00000 13.00000 > 15.00000 > > #1st Qu. 24.75000 29.50000 26.00000 7.75000 40.00000 17.25000 27.50000 > 34.75000 > > #Median 34.00000 46.00000 42.50000 35.50000 49.50000 23.50000 51.50000 > 51.50000 > > #Mean 42.50000 42.75000 41.75000 35.75000 44.88000 26.88000 44.75000 > 50.12000 > > #sd 25.05993 27.77846 19.57221 28.40397 16.39196 16.60841 21.97239 > 25.51995 > > #3rd Qu. 67.75000 58.50000 50.00000 63.25000 54.25000 30.25000 56.25000 > 70.50000 > > #IQR 43.00000 29.00000 24.00000 55.50000 14.25000 13.00000 28.75000 > 35.75000 > > #Max. 74.00000 77.00000 76.00000 70.00000 65.00000 63.00000 79.00000 > 80.00000 > > # Col9 Col10 > > #Min. 2.00000 6.00000 > > #1st Qu. 24.50000 12.50000 > > #Median 33.50000 48.00000 > > #Mean 34.88000 40.75000 > > #sd 24.39811 28.21727 > > #3rd Qu. 45.25000 63.00000 > > #IQR 20.75000 50.50000 > > #Max. 71.00000 72.00000 > > Solves the order and the matrix output! > > A.K. > > > > > > > > > > > > > > > If you reply to this email, your message will be added to the > discussion > below: > > http://r.789695.n4.nabble.com/Summary-statistics-for-matrix-columns-tp4650489p4650500.html > > > > To unsubscribe from Summary statistics for matrix columns, click here. > > NAML Then maybe .... x <- matrix(sample(1:8000),nrow=100) colnames(x)<- paste("Col",1:ncol(x),sep="") apply(x,2,function(x) c(Min=min(x), "1st Qu" =quantile(x, 0.25,names=FALSE), Median = quantile(x, 0.5, names=FALSE), Mean= mean(x), Sd=sd(x), "3rd Qu" = quantile(x,0.75,names=FALSE), IQR=IQR(x), Max = max(x))) HTH Pete -- View this message in context: http://r.789695.n4.nabble.com/Summary-statistics-for-matrix-columns-tp4650489p4650547.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.