From ripley@stats.ox.ac.uk  Thu May 31 09:48:27 2001
From: ripley@stats.ox.ac.uk (ripley@stats.ox.ac.uk)
Date: Thu, 31 May 2001 10:48:27 +0200 (MET DST)
Subject: [Rd] format() of a character matrix converts to vector (PR#960)
Message-ID: <200105310848.KAA15153@pubhealth.ku.dk>

Thanks.  There is an easy fix.  In format.default

    f.char <- function(x, justify) {
	if(length(x) <= 1) return(x)
	nc <- nchar(x)
	w <- max(nc)
	all <- substring(paste(rep(" ", w), collapse=""), 1, w-nc)
	res <- if(justify == "left") paste(x, all, sep="")
	else paste(all, x, sep="")
        dim(res) <- dim(x)
        res
    }



On Thu, 31 May 2001 John.Peters@tip.csiro.au wrote:

>
> Using R 1.2.3 under both windows 95 and linux, format() works fine on a
> numerical matrix, but converts a character matrix to a vector, apparently
> omitting to convert it back to a matrix:
>
> > a_matrix(c("axx","b","c","d","e","f","g","h"),nrow=2)
>
> > a
>      [,1]  [,2] [,3] [,4]
> [1,] "axx" "c"  "e"  "g"
> [2,] "b"   "d"  "f"  "h"
>
> > format(a)
> [1] "axx" "b  " "c  " "d  " "e  " "f  " "g  " "h  "
>
> > format(a,justify="right")
> [1] "axx" "  b" "  c" "  d" "  e" "  f" "  g" "  h"
>
> > format(a,justify="left")
> [1] "axx" "b  " "c  " "d  " "e  " "f  " "g  " "h  "
>
> > format(a,justify="none")
>      [,1]  [,2] [,3] [,4]
> [1,] "axx" "c"  "e"  "g"
> [2,] "b"   "d"  "f"  "h"
>
>
> Many thanks
>
> ----------------------------------------------------------------------------
> John Peters
> CSIRO National Measurement Laboratory
> PO Box 218                                Phone:    +61 2 9413 7503
> Lindfield NSW 2070                        Fax:      +61 2 9413 7202
> Australia                                 Internet: John.Peters@tip.CSIRO.AU
> ----------------------------------------------------------------------------
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] format() of a character matrix converts to vector (PR#960)
ripley@stats.ox.ac.uk