shinypivottabler v1.0


Monthly downloads



Shiny Module to Create Pivot Tables

Shiny Module to create, visualize, customize and export Excel-like pivot table.



The great pivottabler package enables pivot tables to be created with just a few lines of R.

The pivottabler package aims to:

  • Provide an easy way of creating pivot tables, without requiring the user to specify low-level layout logic.
  • Provide multiple ways of specifying calculation logic to cover both simple and more sophisticated requirements.
  • Provide styling options so the pivot tables can be themed/branded as needed.

All calculations for the pivot tables take place inside R, enabling the use of a wide-range of R functions in the calculation logic, and are optimized with the use of packages dplyr & data.table

shinypivottabler just adds a simple and useful Shiny module to build, visualize, customize and export custom pivot tables.

shinypivottabler vs rpivotTable ?

The rpivotTable package is visualization library built around the Javascript pivottable library.

PivotTable.js is a Javascript Pivot Table library with drag'n'drop functionality built on top of jQuery/jQueryUI and written in CoffeeScript (then compiled to JavaScript) by Nicolas Kruchten at Datacratic. It is available under an MIT license

rpivotTable is really a great pivot table library with some really cool features such as :

  • drag'n' drop table definition
  • lot of available aggregators
  • possibility to print interactive charts

But it's a full Javascript tool, and so all the data are sended to the client, and all computations are done on the client. So it's not a good idea to use rpivotTable with a huge database.

No charts (yet...?) in shinypivottabler but :

  • a full efficient R tool, on server-side
  • possibility to add new aggregate functions
  • possibility to combine two indicators
  • output customization and excel export


You can install:

  • the latest development version from GitHub with

Demo application

runApp(system.file("demo_app", package = "shinypivottabler"))



n <- 10000000

# create artificial dataset
data <- data.frame("gr1" = sample(c("A", "B", "C", "D"), size = n,
                                 prob = rep(1, 4), replace = T),
                   "gr2" = sample(c("E", "F", "G", "H"), size = n,
                                 prob = rep(1, 4), replace = T),
                   "gr3" = sample(c("I", "J", "K", "L"), size = n,
                                 prob = rep(1, 4), replace = T),
                   "gr4" = sample(c("M", "N", "O", "P"), size = n,
                                 prob = rep(1, 4), replace = T),
                   "value1" = rnorm(n),
                   "value2" = runif(n))

server = function(input, output, session) {
  shiny::callModule(module = shinypivottabler,
                    id = "id",
                    data = data,
                    pivot_cols = c("gr1", "gr2", "gr3", "gr4"))

ui = shiny::fluidPage(
  shinypivottablerUI(id = "id")

shiny::shinyApp(ui = ui, server = server)

# more info in documentation : 
  • Define your pivot table

  • Visualize & export

  • Customize

Functions in shinypivottabler

Name Description
shinypivottabler Shiny module to render and export pivot tables.
No Results!

Last month downloads


License GPL-3
Encoding UTF-8
LazyData true
RoxygenNote 7.1.1
NeedsCompilation no
Packaged 2021-02-22 10:43:00 UTC; BenoitThieurmel
Repository CRAN
Date/Publication 2021-02-22 20:10:03 UTC

Include our badge in your README