Dear useRs! I athought this was a trival question, however I could not fin dan answer in the help files for print, format or formatC. I would like to print a numerical matrix so that all cells (all rows/colums) are printed: a) with the same number of decimal places (numbers after the decimal separator) b) with the same number of numbers (regardless of ".") c) with the same number of characters (including "." if present, with option for ignoring or not the "-" sign)) - if the last character would be ".", it is ommited. Let say I have a matrix M [,1] [,2] [,3] [,4] [,5] [1,] 1 -0.87330578 14.72961 1.0885293 101 [2,] 2 -0.61406616 13.63638 -0.3124361 102 [3,] 3 -0.03322147 15.15509 -1.6021408 103 [4,] 4 1.58780140 15.00857 -0.1908761 104 [5,] 5 0.75340104 14.80913 0.3210328 105 Which you can get (at least similar) by: M<- matrix(rnorm(25),ncol=5,nrow=5) M[,1]<-1:5 M[,3]<-M[,3]+15 M[,5]<-101:105 If I select the number of 3, I want to get: a) [,1] [,2] [,3] [,4] [,5] [1,] 1.000 -0.873 14.729 1.088 101.000 [2,] 2.000 -0.614 13.636 -0.312 102.000 [3,] 3.000 -0.033 15.155 -1.602 103.000 [4,] 4.000 1.588 15.009 -0.190 104.000 [5,] 5.000 0.753 14.809 0.321 105.000 b) [,1] [,2] [,3] [,4] [,5] [1,] 1.00 -0.87 14.7 1.09 101 [2,] 2.00 -0.61 13.6 -0.31 102 [3,] 3.00 -0.03 15.2 -1.60 103 [4,] 4.00 1.58 15.0 -0.19 104 [5,] 5.00 0.75 14.8 0.32 105 c) (ignoring "-" sign) [,1] [,2] [,3] [,4] [,5] [1,] 1.0 -0.9 14 1.1 101 [2,] 2.0 -0.6 14 -0.3 102 [3,] 3.0 -0.0 15 -1.6 103 [4,] 4.0 1.6 15 -0.2 104 [5,] 5.0 0.8 15 0.3 105 c) (counting the "-" sign) [,1] [,2] [,3] [,4] [,5] [1,] 1.0 -1 14 1.1 101 [2,] 2.0 -1 14 -0 102 [3,] 3.0 -0 15 -2 103 [4,] 4.0 1.6 15 -0 104 [5,] 5.0 0.8 15 0.3 105 I would appreciate a solution for any of those options. Best regards, Ales
Here are a couple of alternatives to try: noquote(format(round(M,3))) noquote(apply(round(M,3), 2, format)) On 1/17/06, Ale? ?iberna <ales.ziberna at gmail.com> wrote:> Dear useRs! > > I athought this was a trival question, however I could not fin dan answer in > the help files for print, format or formatC. I would like to print a > numerical matrix so that all cells (all rows/colums) are printed: > a) with the same number of decimal places (numbers after the decimal > separator) > b) with the same number of numbers (regardless of ".") > c) with the same number of characters (including "." if present, with > option for ignoring or not the "-" sign)) - if the last character would be > ".", it is ommited. > > Let say I have a matrix M > [,1] [,2] [,3] [,4] [,5] > [1,] 1 -0.87330578 14.72961 1.0885293 101 > [2,] 2 -0.61406616 13.63638 -0.3124361 102 > [3,] 3 -0.03322147 15.15509 -1.6021408 103 > [4,] 4 1.58780140 15.00857 -0.1908761 104 > [5,] 5 0.75340104 14.80913 0.3210328 105 > > Which you can get (at least similar) by: > M<- matrix(rnorm(25),ncol=5,nrow=5) > M[,1]<-1:5 > M[,3]<-M[,3]+15 > M[,5]<-101:105 > > > If I select the number of 3, I want to get: > a) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.000 -0.873 14.729 1.088 101.000 > [2,] 2.000 -0.614 13.636 -0.312 102.000 > [3,] 3.000 -0.033 15.155 -1.602 103.000 > [4,] 4.000 1.588 15.009 -0.190 104.000 > [5,] 5.000 0.753 14.809 0.321 105.000 > > b) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.00 -0.87 14.7 1.09 101 > [2,] 2.00 -0.61 13.6 -0.31 102 > [3,] 3.00 -0.03 15.2 -1.60 103 > [4,] 4.00 1.58 15.0 -0.19 104 > [5,] 5.00 0.75 14.8 0.32 105 > > c) (ignoring "-" sign) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.0 -0.9 14 1.1 101 > [2,] 2.0 -0.6 14 -0.3 102 > [3,] 3.0 -0.0 15 -1.6 103 > [4,] 4.0 1.6 15 -0.2 104 > [5,] 5.0 0.8 15 0.3 105 > > c) (counting the "-" sign) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.0 -1 14 1.1 101 > [2,] 2.0 -1 14 -0 102 > [3,] 3.0 -0 15 -2 103 > [4,] 4.0 1.6 15 -0 104 > [5,] 5.0 0.8 15 0.3 105 > > > I would appreciate a solution for any of those options. > > Best regards, > Ales > > ______________________________________________ > R-help at 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 >
Thank you! That solves my a) problem! Best, Ales -----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Gabor Grothendieck Sent: Tuesday, January 17, 2006 4:55 PM To: Ale?? ??iberna Cc: r-help at stat.math.ethz.ch Subject: Re: [R] Printing numerical matrices Here are a couple of alternatives to try: noquote(format(round(M,3))) noquote(apply(round(M,3), 2, format)) On 1/17/06, Ale?? ??iberna <ales.ziberna at gmail.com> wrote:> Dear useRs! > > I athought this was a trival question, however I could not fin dan > answer in the help files for print, format or formatC. I would like to > print a numerical matrix so that all cells (all rows/colums) are printed: > a) with the same number of decimal places (numbers after the decimal > separator) > b) with the same number of numbers (regardless of ".") > c) with the same number of characters (including "." if present, with > option for ignoring or not the "-" sign)) - if the last character > would be ".", it is ommited. > > Let say I have a matrix M > [,1] [,2] [,3] [,4] [,5] > [1,] 1 -0.87330578 14.72961 1.0885293 101 > [2,] 2 -0.61406616 13.63638 -0.3124361 102 > [3,] 3 -0.03322147 15.15509 -1.6021408 103 > [4,] 4 1.58780140 15.00857 -0.1908761 104 > [5,] 5 0.75340104 14.80913 0.3210328 105 > > Which you can get (at least similar) by: > M<- matrix(rnorm(25),ncol=5,nrow=5) > M[,1]<-1:5 > M[,3]<-M[,3]+15 > M[,5]<-101:105 > > > If I select the number of 3, I want to get: > a) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.000 -0.873 14.729 1.088 101.000 > [2,] 2.000 -0.614 13.636 -0.312 102.000 > [3,] 3.000 -0.033 15.155 -1.602 103.000 > [4,] 4.000 1.588 15.009 -0.190 104.000 > [5,] 5.000 0.753 14.809 0.321 105.000 > > b) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.00 -0.87 14.7 1.09 101 > [2,] 2.00 -0.61 13.6 -0.31 102 > [3,] 3.00 -0.03 15.2 -1.60 103 > [4,] 4.00 1.58 15.0 -0.19 104 > [5,] 5.00 0.75 14.8 0.32 105 > > c) (ignoring "-" sign) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.0 -0.9 14 1.1 101 > [2,] 2.0 -0.6 14 -0.3 102 > [3,] 3.0 -0.0 15 -1.6 103 > [4,] 4.0 1.6 15 -0.2 104 > [5,] 5.0 0.8 15 0.3 105 > > c) (counting the "-" sign) > [,1] [,2] [,3] [,4] [,5] > [1,] 1.0 -1 14 1.1 101 > [2,] 2.0 -1 14 -0 102 > [3,] 3.0 -0 15 -2 103 > [4,] 4.0 1.6 15 -0 104 > [5,] 5.0 0.8 15 0.3 105 > > > I would appreciate a solution for any of those options. > > Best regards, > Ales > > ______________________________________________ > R-help at 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 >______________________________________________ R-help at 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