The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
The rpivotTable package is an R htmlwidget 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
The rpivotTable package depends on htmlwidgets package so you need to install both packages. You can do this using the devtools package as follows:
::install_github(c("ramnathv/htmlwidgets", "smartinsightsfromdata/rpivotTable")) devtools
Call the package with
library(rpivotTable) # No need to explicitly load htmlwidgets: this is done automatically
Just plug in your data.frame
or data.table
(e.g. dt) to rpivotTable()
.
It is as simple as this:
data(mtcars)
rpivotTable(mtcars)
The pivot table should appear in your RStudio Viewer or your browser of choice.
Please refer to the examples and explanations here.
rpivotTable
parameters decide how the pivot table will
look like the firs time it is opened:
data
can be a data.frame
or
data.table
. Nothing else is needed. If only the data is
selected the pivot table opens with nothing on rows and columns (but you
can at any time drag and drop any variable in rows or columns at your
leasure)rows
and cols
allow the user to create a
report, i.e. to indicate which element will be on rows and columns.aggregatorName
indicates the type of aggregation.
Options here are numerous: Count, Count Unique Values, List Unique
Values, Sum, Integer Sum, Average, Sum over Sum, 80% Upper Bound, 80%
Lower Bound, Sum as Fraction of Total, Sum as Fraction of Rows, Sum as
Fraction of Columns, Count as Fraction of Total, Count as Fraction of
Rows, Count as Fraction of Columnsvals
specifies the variable to use with
aggregatorName
.renderers
dictates the type of graphic element used for
display, like Table, Treemap etc.sorters
allow to implement a javascript function to
specify the ad hoc sorting of certain values. See vignette for an
example. It is especially useful with time divisions like days of the
week or months of the year (where the alphabetical order does not
work)subtotals
will allow to dynamically select / deselect
subtotalsFor example, to display a pivot table with frequency of colour combinations of eyes and hair, you can specify:
data(HairEyeColor)
rpivotTable(data = HairEyeColor, rows = "Hair",cols="Eye", vals = "Freq", aggregatorName = "Sum", rendererName = "Table", width="100%", height="400px")
This will display a cross tab with the frequency of eyes by hair colour. Dragging & dropping (slicing & dicing) categorical variables in rows and columns changes the shape of the table.
If you want to include it as part of your dplyr
/
magrittr
pipeline, you can do that also:
library(dplyr)
%>%
iris tbl_df() %>%
filter( Sepal.Width > 3 ) %>%
rpivotTable()
I’m happy to announce that Nicolas Kruchten has officialy joined the rpivotTable project. Many thanks to him for the work on the current release.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.