[Rd] justify hard coded in format.ftable

Gabor Grothendieck ggrothend|eck @end|ng |rom gm@||@com
Thu May 14 17:49:44 CEST 2020


One can use as.data.frame(as.matrix(tab)) to avoid calling
as.data.frame.matrix directly
(although I find I do use as.data.frame.matrix anyways sometimes even
though it is generally
better to call the generic.).

Also note that the various as.data.frame methods do not address the examples
in the SO links I posted which is why I mentioned it.

On Thu, May 14, 2020 at 9:22 AM SOEIRO Thomas <Thomas.SOEIRO using ap-hm.fr> wrote:
>
> Thanks for the links. I agree that such a feature would be a nice addition, and could make ftable even more useful.
>
> In the same spirit, I think it could be useful to mention the undocumented base::as.data.frame.matrix function in documentation of table and xtabs (in addition to the already mentioned base::as.data.frame.table). The conversion from ftable/table/xtabs to data.frame is a common task that some users seem to struggle with (https://stackoverflow.com/questions/10758961/how-to-convert-a-table-to-a-data-frame).
>
> tab <- table(warpbreaks$wool, warpbreaks$tension)
> as.data.frame(tab) # reshaped table
> as.data.frame.matrix(tab) # non-reshaped table
>
> To sum up, for the sake of clarity, these proposals address two different topics:
> - The justify argument would reduce the need to reformat the exported ftable
> - An ftable2df-like function (and the mention of as.data.frame.matrix in the documentation) would facilitate the reuse of ftable results for further analysis.
>
> Thank you very much,
>
> Thomas
>
> > If you are looking at ftable could you also consider adding a way to convert an ftable into a usable data.frame such as the ftable2df function defined here:
> >
> > https://stackoverflow.com/questions/11141406/reshaping-an-array-to-data-frame/11143126#11143126
> >
> > and there is an example of using it here:
> >
> > https://stackoverflow.com/questions/61333663/manipulating-an-array-into-a-data-frame-in-base-r/61334756#61334756
> >
> > Being able to move back and forth between various base class representations seems like something that would be natural to provide.
> >
> > Thanks.
> >
> > On Thu, May 14, 2020 at 5:32 AM Martin Maechler <maechler using stat.math.ethz.ch> wrote:
> >>
> >>>>>>> SOEIRO Thomas
> >>>>>>>     on Wed, 13 May 2020 20:27:15 +0000 writes:
> >>
> >>> Dear all,
> >>> I haven't received any feedback so far on my proposal to make
> >> "justify" argument available in stats:::format.ftable
> >>
> >>> Is this list the appropriate place for this kind of proposal?
> >>
> >> Yes, it is.. Actually such a post is even a "role model" post for
> >> R-devel.
> >>
> >>> I hope this follow-up to my message won't be taken as rude. Of course it's not meant to be, but I'm not used to the R mailing lists...
> >>
> >> well, there could be said much, and many stories told here ... ;-)
> >>
> >>> Thank you in advance for your comments,
> >>
> >>> Best,
> >>> Thomas
> >>
> >> The main reasons for "no reaction" (for such nice post) probably are
> >> combination of the following
> >>
> >> - we are busy
> >> - if we have time, we think other things are more exciting
> >> - we have not used ftable much/at all and are not interested.
> >>
> >> Even though the first 2 apply to me, I'll have a 2nd look into your
> >> post now, and may end up well agreeing with your proposal.
> >>
> >> Martin Maechler
> >> ETH Zurich  and  R Core team
> >>
> >>
> >>
> >>
> >>>> Dear all,
> >>>>
> >>>> justify argument is hard coded in format.ftable:
> >>>>
> >>>> cbind(apply(LABS, 2L, format, justify = "left"),
> >>>> apply(DATA, 2L, format, justify = "right"))
> >>>>
> >>>> It would be useful to have the possibility to modify the argument between c("left", "right", "centre", "none") as in format.default.
> >>>>
> >>>> The lines could be changed to:
> >>>>
> >>>> if(length(justify) != 2)
> >>>> stop("justify must be length 2")
> >>>> cbind(apply(LABS, 2L, format, justify = justify[1]),
> >>>> apply(DATA, 2L, format, justify = justify[2]))
> >>>>
> >>>> The argument justify could defaults to c("left", "right") for backward compatibility.
> >>>>
> >>>> It could then allow:
> >>>> ftab <- ftable(wool + tension ~ breaks, warpbreaks)
> >>>> format.ftable(ftab, justify = c("none", "none"))
> >>>>
> >>>> Best regards,
> >>>>
> >>>> Thomas



-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-devel mailing list