[R] Printing numerical matrices
Gabor Grothendieck
ggrothendieck at gmail.com
Tue Jan 17 16:54:59 CET 2006
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
>
More information about the R-help
mailing list