John_Hendrickx@yahoo.com
2003-Mar-06 12:25 UTC
[Rd] modifying ftable to allow percentages (wishlist) (PR#2606)
Full_Name: John Hendrickx Version: 1.6.2 OS: Windows XP Submission from: (NULL) (80.126.78.108) (This is not a bug report but a request to add a feature to future versions of R. Hope this is an appropriate place). I'd like to suggest adding an option to ftable to allow percentages. It would be easy to do and backwards compatible. Percentage tables are useful in educational contexts, whereas lack of a simple method for calculating percentages gives an incorrect impression of the maturity of R IMHO. To add percentage tables to ftable, an option such as pcnt=c("n", "row", "column", "total","gtotal") could be added to ftable.default. Prior to the "y <- aperm" near the end of ftable, the following lines would be added: pcnt<-match.arg(pcnt) if (pcnt!="n") { if (pcnt=="row") {mrg2drop<-col.vars[length(col.vars)]} if (pcnt=="column") {mrg2drop<-row.vars[length(row.vars)]} if (pcnt=="total") {mrg2drop<-c(col.vars[length(col.vars)],row.vars[length(row.vars)])} if (pcnt=="gtotal") {mrg2drop<-0} x<-prop.table(x,i[-mrg2drop])*100 } The pcnt option would default to "n" in which case nothing would happen, ftable would work as presently. If pcnt="row" were used, percentages would sum to 100 over the last variable of col.vars for each row. For pcnt="column", percentages would sum to 100 over the last variable of row.vars for each column. For pcnt="total", percentages would sum to 100 for the last variable in row.vars and col.vars, i.e. separately for each subtable. If pcnt="gtotal" were used, the table would sum to 100 over the complete table. One further modification would be needed in order to use percentages in ftable.formula. Line 42 of ftable.formula, where ftable is called if (inherits(edata, "ftable") is true would have to be changed to ftable(data, row.vars = rvars, col.vars = cvars, ...) The ... argument would have to be added to pass pcnt= to ftable.default. These seem to me to be minor changes that would add a useful functionality to R. (Unless of course Guru[k] already has something much more sophisticated in the pipeline). Would it be a problem to implement this in future versions of R? Yours truly, John Hendrickx