Learn R Programming

htmlTable (version 1.5)

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 = FALSE, minimized.columns, js.scripts = c())
"interactiveTable"(tbl, txt.maxlen = 20, button = FALSE, minimized.columns, js.scripts = c())
"knit_print"(x, ...)
"print"(x, useViewer, ...)

Arguments

x
The interactive table that is 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 element.
tbl
An htmlTable object can be directly passed into the function
useViewer
If you are using RStudio there is a viewer thar can render the table within that is envoced if in 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 cat() the set options(htmlTable.cat = TRUE).

Value

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

Examples

Run this code
# 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)

output <-
  cbind(rep(short_txt, 2),
        rep(long_txt, 2))

interactiveTable(output,
                 minimized.columns = ncol(output),
                 header = c("Short", "Long"),
                 rnames = c("First", "Second"),
                 col.rgroup = c("#FFF", "#EEF"))

Run the code above in your browser using DataLab