Re: [R] zero.print in print.table after adding margins

From: Peter Dalgaard <p.dalgaard_at_biostat.ku.dk>
Date: Thu 29 Jun 2006 - 20:18:13 EST

"BXC (Bendix Carstensen)" <bxc@steno.dk> writes:

> The function addmargins() adds margins to a table, but returns a matrix.
> But even after converted to a table the print.zero="." option of
> print.table() does not work:
>
> > x <- sample( 1:7, 20, replace=T )
> > y <- sample( 1:7, 20, replace=T )
> > tt <- table( x, y )
> > tx <- as.table( addmargins( table( x, y ) ) )
> > print( tt, zero.print="." )
> y
> x 1 2 3 4 5 6 7
> 1 1 2 2 . . 1 .
> 2 1 . . 1 . . .
> 3 . . . . . . 2
> 4 1 . . . . 1 .
> 5 1 . 1 . . 1 .
> 6 . 1 . 1 . . .
> 7 . . 1 . 1 1 .
> > print( tx, zero.print="." )
> y
> x 1 2 3 4 5 6 7 Sum
> 1 1 2 2 0 0 1 0 6
> 2 1 0 0 1 0 0 0 2
> 3 0 0 0 0 0 0 2 2
> 4 1 0 0 0 0 1 0 2
> 5 1 0 1 0 0 1 0 3
> 6 0 1 0 1 0 0 0 2
> 7 0 0 1 0 1 1 0 3
> Sum 4 3 4 2 1 4 2 20
>
> Is this a facility of print.table?
> The attributes() of tt and tx have identical stucture.

It appears to be intentional.

print.table has

    if (is.integer(x) && zero.print != "0" && any(i0 <- !ina &

        x == 0))
        xx[i0] <- sub("0", zero.print, xx[i0])

and of course,

> storage.mode(tx)

[1] "double"
> storage.mode(tt)

[1] "integer"

The reason could be that it is not entirely clear what to expect for values that are zero up to round-off.

storage.mode(tx) <- "integer" fixes things up.

-- 
   O__  ---- Peter Dalgaard             ุster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-help@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
Received on Thu Jun 29 21:34:03 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 29 Jun 2006 - 22:12:36 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.