knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
The tbl data frame is the main input to the gentlg function for creating the RTF or HTML outputs.
This vignette will show you the tbl structure and how the tbl variables are in action for
rendering the RTF or HTML outputs.
tbl data frameThe basic variables of tbl includes label, col1, col2, ..., coln, where
label: row text displayed on the first column of the tablecol1: statistic results displayed on the second column of the tablecol2: statistic results displayed on the third column of the table.The example below shows you a very basic tbl data frame, and how this tbl is transformed
through the gentlg function call to create the HTML output.
library(dplyr) library(tidytlg) tbl <- tibble::tribble( ~label, ~col1, ~col2, ~col3, "Analysis Set: ITT", "86", "84", "84", "Age (Years)", NA, NA, NA, "N", "86", "84", "84" ) knitr::kable(tbl) # render tbl gentlg( huxme = tbl, format = "HTML", orientation = "landscape", opath = ".", file = "DEMO1", title = "Basic tbl without formatting", colheader = c("", "Placebo", "Active 1", "Active 2"), print.hux = FALSE, wcol = .30 )
The above example does not have any formatting in actions on the table. To enable formatting, additional variables will
need to be created in the tbl data frame.
For inserting a blank line prior to the second row (i.e. Age (Years)), we will need to add the newrows variable with value = 1.
tbl <- tbl %>% mutate(newrows = case_when( label == "Age (Years)" ~ 1, TRUE ~ 0 )) knitr::kable(tbl) # render tbl gentlg( huxme = tbl, format = "HTML", orientation = "landscape", opath = ".", file = "DEMO2", title = "Adding the variable of newrows", colheader = c("", "Placebo", "Active 1", "Active 2"), print.hux = FALSE, wcol = .30 )
For adding one indentation to the N row, we will need to add the indentme
variable with value = 1, which indicates one indentation (two will result in two indentation, and so on).
tbl <- tbl %>% mutate(indentme = case_when( label == "N" ~ 1, TRUE ~ 0 )) knitr::kable(tbl) # render tbl gentlg( huxme = tbl, format = "HTML", orientation = "landscape", opath = ".", file = "DEMO3", title = "Adding the variable of indentme", colheader = c("", "Placebo", "Active 1", "Active 2"), print.hux = FALSE, wcol = .30 )
To enable bold font on the row of Age (Years), the boldme variable with value = 1 will need to be added.
tbl <- tbl %>% mutate(boldme = case_when( label == "Age (Years)" ~ 1, TRUE ~ 0 )) knitr::kable(tbl) # render tbl gentlg( huxme = tbl, format = "HTML", orientation = "landscape", opath = ".", file = "DEMO4", title = "Adding the variable of boldme", colheader = c("", "Placebo", "Active 1", "Active 2"), print.hux = FALSE, wcol = .30 )
There is another formatting variable called newpage, where assigning newpage = 1 will start a new page in the output.
Besides manually adding the formatting variables to tbl, we have developed several formatting
functions to facilitate the formatting process:
add_newrows: add newrows variable to the tbl based on row_typeadd_indent: add indentme variable to the tbl based on row_typeadd_newpage: add newpage variable to the tbl based on row_type.The row_type variable is created in the tbl by calling the freq, nested_freq, and univar functions,
which is used by the above functions for setting up the formatting variables. The tbl example below is
obtained by calling the univar function for summarizing the age statistics in the CDISC ADSL dataset.
After calling the univar function, we create the anbr (analysis number) variable as the identifier of this tbl chunk.
tbl <- cdisc_adsl %>% univar( colvar = "TRT01PN", rowvar = "AGE", statlist = statlist(c("N", "MEANSD")), decimal = 0, row_header = "Age (Years)" ) %>% mutate(anbr = "01") knitr::kable(tbl)
The add_format function, which incorporates all 3 formatting functions above (add_indent, add_newrows, add_newpage),
can then be applied to the tbl for creating the formatting variables.
tbl <- cdisc_adsl %>% univar( colvar = "TRT01PN", rowvar = "AGE", statlist = statlist(c("N", "MEANSD")), decimal = 0, row_header = "Age (Years)" ) %>% mutate(anbr = "01") %>% add_format() knitr::kable(tbl) # render tbl gentlg( huxme = tbl, tlf = "Table", format = "HTML", orientation = "landscape", opath = ".", file = "DEMO5", title = "Using row_type to set up indentation", colheader = c("", "Placebo", "Active 1", "Active 2"), print.hux = FALSE, wcol = .30 )
The default indentation for each row_type is shown below.
| row_type | default indentation |
| ----------------- |:-------------------:|
| TABLE_BY_HEADER | 0 |
| BY_HEADER[1-9] | 0 |
| HEADER | 0 |
| N | 1 |
| VALUE | 2 |
| NESTED | 0 |
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.