[R] Descriptive Statistics: useful hacks

Leonard Mada |eo@m@d@ @end|ng |rom @yon|c@eu
Tue Oct 5 20:50:29 CEST 2021


Dear R users,


I wrote in the meantime a new function:

apply.html(html, XPATH, FUN, ...)


This function applies FUN to the nodes selected using XPATH. However, I 
wonder if there is a possibility to use more simple selectors (e.g. 
jQuery). Although I am not an expert with jQuery, it may be easier for 
end users than XPATH.


Package htmltools does not seem to offer support to import a native html 
file, nor do I see any functions using jQuery selectors. I do not seem 
to find any such packages. I would be glad for any hints.


Many thanks,


Leonard

=======

Latest code is on Github:

https://github.com/discoleo/R/blob/master/Stat/Tools.DescriptiveStatistics.R


Notes:

1.) as.html() currently imports only a few types, but it could be easily 
extended to fully generic html;

Note: the export as shiny app may not work with a fully generic html; I 
have not yet explored all the implications!

2.) I am still struggling to understand how to best design the option: 
with.tags = TRUE.

3.) llammas.FUN: Was implemented at great expense and at the last 
minute, but unfortunately is still incomplete and important visual 
styles are missing. Help is welcomed.


On 10/3/2021 1:00 AM, Leonard Mada wrote:
> Dear R Users,
>
>
> I have started to compile some useful hacks for the generation of nice 
> descriptive statistics. I hope that these functions & hacks are useful 
> to the wider R community. I hope that package developers also get some 
> inspiration from the code or from these ideas.
>
>
> I have started to review various packages focused on descriptive 
> statistics - although I am still at the very beginning.
>
>
> ### Hacks / Code
> - split table headers in 2 rows;
> - split results over 2 rows: view.gtsummary(...);
> - add abbreviations as footnotes: add.abbrev(...);
>
> The results are exported as a web page (using shiny) and can be 
> printed as a pdf documented. See the following pdf example:
>
> https://github.com/discoleo/R/blob/master/Stat/Tools.DescriptiveStatistics.Example_1.pdf 
>
>
>
> ### Example
> # currently focused on package gtsummary
> library(gtsummary)
> library(xml2)
>
> mtcars %>%
>     # rename2():
>     # - see file Tools.Data.R;
>     # - behaves in most cases the same as dplyr::rename();
>     rename2("HP" = "hp", "Displ" = disp, "Wt (klb)" = "wt", "Rar" = 
> drat) %>%
>     # as.factor.df():
>     # - see file Tools.Data.R;
>     # - encode as (ordered) factor;
>     as.factor.df("cyl", "Cyl ") %>%
>     # the Descriptive Statistics:
>     tbl_summary(by = cyl) %>%
>     modify_header(update = header) %>%
>     add_p() %>%
>     add_overall() %>%
>     modify_header(update = header0) %>%
>     # Hack: split long statistics !!!
>     view.gtsummary(view=FALSE, len=8) %>%
>     add.abbrev(
>         c("Displ", "HP", "Rar", "Wt (klb)" = "Wt"),
>         c("Displacement (in^3)", "Gross horsepower", "Rear axle ratio",
>         "Weight (1000 lbs)"));
>
>
> The required functions are on Github:
> https://github.com/discoleo/R/blob/master/Stat/Tools.DescriptiveStatistics.R 
>
>
>
> The functions rename2() & as.factor.df() are only data-helpers and can 
> be found also on Github:
> https://github.com/discoleo/R/blob/master/Stat/Tools.Data.R
>
>
> Note:
>
> 1.) The function add.abbrev() operates on the generated html-code:
>
> - the functionality is more generic and could be used easily with 
> other packages that export web pages as well;
>
> 2.) Split statistics: is an ugly hack. I plan to redesign the 
> functionality using xml-technologies. But I have already too many 
> side-projects.
>
> 3.) as.factor.df(): traditionally, one would create derived data-sets 
> or add a new column with the variable as factor (as the user may need 
> the numeric values for further analysis). But it looked nicer as a 
> single block of code.
>
>
> Sincerely,
>
>
> Leonard
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list