[R] Bug in ftable?? (Was: Two-way tables of data, etc)

BXC (Bendix Carstensen) bxc at novonordisk.com
Wed Sep 5 13:06:25 CEST 2001


Thanks to Peter Dalgaard for the helpful hints aboy dimnames.
This will work:

data( warpbreaks )
warpbreaks$variant <- rep( 1:5, len=54 )
attach( warpbreaks )
tb <- table( wool, tension, variant )
tb

# in this case you would like to see:

tp <- tapply( breaks, list( wool, tension, variant ), mean )
tp
dimnames( tp ) <- dimnames( tb )
ftable( tp )

Slightly clumsy, but a workaround.

Bendix C
----------------------
Bendix Carstensen
Senior Statistician
Steno Diabetes Centre
Niels Steensens Vej 2
DK-2820 Gentofte
Denmark
tel: +45 44 43 87 38
mob: +45 28 25 87 38
fax: +45 44 43 73 13
bxc at novo.dk
www.biostat.ku.dk/~bxc
----------------------



> -----Original Message-----
> From: Peter Dalgaard BSA [mailto:p.dalgaard at biostat.ku.dk]
> Sent: 5. september 2001 11:33
> To: BXC (Bendix Carstensen)
> Cc: Murray Jorgensen; 'Prof Brian D Ripley'; r-help at stat.math.ethz.ch
> Subject: Re: [R] Bug in ftable?? (Was: Two-way tables of data, etc)
> 
> 
> "BXC (Bendix Carstensen)" <bxc at novonordisk.com> writes:
> 
> [tp<- tapply( breaks, list( wool, tension, variant ), mean )]
> 
> > tp <- as.table( tp )
> > ftable( tp )
> > 
> > But here i get:
> > 
> > > attr( tp, "class" ) <- "table"
> > > ftable( tp )
> > Error in cbind(...) : number of rows of matrices must match 
> (see arg 2)
> 
> Um, I don't think so.... ;-)
> 
> > # But still they seem to have similar attributes (except 
> for the naming)
> > attributes( tb )
> > attributes( tp )
> > 
> > Is this a bug or a facility of ftable ?
> 
> It's a bug *somewhere*, not necessarily in ftable. The problem is
> either that the dimname-names are not added by tapply, that neither
> as.table or ftable add dummy names, or that write.ftable gags when
> names are absent. (Or put differently: Are either the "table" or
> "ftable" objects *required* to have named attributes??). 
> 
> Actually, the fact that tapply doesn't generated named dimnames cannot
> be considered the cause since 
> (a) as.table should work on any matrix.
> (b) the second argument to tapply is not a named list in your case
> 
> One  workaround is to add in the names:
> 
>   ft <- ftable(tp)
>   names(attr(ft,"row.vars")) <- c("wool","tension")
>   names(attr(ft,"col.vars")) <- "variant"
>   ft
> 
> another is to make sure that tapply gets the names right:
> 
> > tp <- tapply(breaks, 
> list(wool=wool,tension=tension,variant=variant), mean)
> > ftable(tp)
>              variant    1    2    3    4    5
> wool tension                                 
> A    L               39.0 40.5 40.0 46.0 70.0
>      M               28.0 29.5 26.5 12.0 18.0
>      H               19.5 22.0 10.0 39.5 24.5
> B    L               31.5 29.0 29.0 27.5 24.5
>      M               39.0 35.0 23.5 29.0 22.5
>      H               17.5 18.0 20.0 22.5 13.0
> 
> or - lazy variation - abuse the fact that dataframes are lists and do
> have labeled columns:
> 
> > tp <- tapply( breaks, data.frame(wool,tension,variant), mean )
> > ftable(tp)
>              variant    1    2    3    4    5
> wool tension                                 
> A    L               39.0 40.5 40.0 46.0 70.0
>      M               28.0 29.5 26.5 12.0 18.0
>      H               19.5 22.0 10.0 39.5 24.5
> B    L               31.5 29.0 29.0 27.5 24.5
>      M               39.0 35.0 23.5 29.0 22.5
>      H               17.5 18.0 20.0 22.5 13.0
> 
> 
> -- 
>    O__  ---- Peter Dalgaard             Blegdamsvej 3  
>   c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
>  (*) \(*) -- University of Copenhagen   Denmark      Ph: 
> (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: 
> (+45) 35327907
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
> -.-.-.-.-.-.-.-.-
> r-help 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-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help 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-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list