[R] Printing numerical matrices

Aleš Žiberna ales.ziberna at gmail.com
Tue Jan 17 16:06:40 CET 2006


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




More information about the R-help mailing list