Learn R Programming

htmlTable (version 2.4.3)

interactiveTable: An interactive table that allows you to limit the size of boxes

Description

This function wraps the htmlTable and adds JavaScript code for toggling the amount of text shown in any particular cell.

Usage

interactiveTable(
  x,
  ...,
  txt.maxlen = 20,
  button = getOption("htmlTable.interactiveTable.button", default = FALSE),
  minimized.columns = NULL,
  js.scripts = c()
)

# S3 method for htmlTable interactiveTable( x, ..., txt.maxlen = 20, button = getOption("htmlTable.interactiveTable.button", default = FALSE), minimized.columns = NULL, js.scripts = c() )

# S3 method for interactiveTable knit_print(x, ...)

# S3 method for interactiveTable print(x, useViewer, ...)

Value

An htmlTable with a javascript attribute containing the code that is then printed

Arguments

x

The table to be printed

...

The exact same parameters as htmlTable() uses

txt.maxlen

The maximum length of a text

button

Indicator if the cell should be clickable or if a button should appear with a plus/minus

minimized.columns

Notifies if any particular columns should be collapsed from start

js.scripts

If you want to add your own JavaScript code you can just add it here. All code is merged into one string where each section is wrapped in it's own <scrip></script> element.

useViewer

If you are using RStudio there is a viewer thar can render the table within that is envoced if in base::interactive() mode. Set this to FALSE if you want to remove that functionality. You can also force the function to call a specific viewer by setting this to a viewer function, e.g. useViewer = utils::browseURL if you want to override the default RStudio viewer. Another option that does the same is to set the options(viewer=utils::browseURL) and it will default to that particular viewer (this is how RStudio decides on a viewer). Note: If you want to force all output to go through the base::cat() the set [options][base::options](htmlTable.cat = TRUE).

Examples

Run this code
library(magrittr)
# A simple output
long_txt <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum"
short_txt <- gsub("(^[^.]+).*", "\\1", long_txt)

cbind(rep(short_txt, 2),
      rep(long_txt, 2)) %>%
  addHtmlTableStyle(col.rgroup = c("#FFF", "#EEF")) %>%
  interactiveTable(minimized.columns = ncol(.),
                   header = c("Short", "Long"),
                   rnames = c("First", "Second"))

Run the code above in your browser using DataLab