pivta
is an R wrapper of the
WebDataRocks JavaScript library. The
package allows you to implement an interactive pivot table (among other
data analysis features) throughout an HTML Widget.
The library supports CSV and JSON data. Note that this is a free version of the WebDataRocks library, as such the data file uploaded should not exceed 1MB. Nonetheless, that’s fair for most modest data sets
You can install the development version of pivta
from Github using:
# install.packages("remotes")
remotes::install_github("feddelegrand7/pivta")
Just run pivta()
and start playing ! The function has three main
arguments:
- dsource: Optional. Allows you to specify ex-ante the location of the csv/json data frame, by providing a URL.
- sep: The CSV data frame separator. Defaults to comma (“,”). Will be ignored if data is JSON.
- report: Optional. Allows you to specify ex-ante the location of your JSON report file (see below).
In Shiny, you’ll have to use the pivtaOutput()
and renderPivta()
functions.
Let’s work with the CSV file of the mpg data frame. You can upload the file locally or specify its URL using the source argument.
library(pivta)
pivta()
We can make some cool analysis:
You can easily change the aggregation measure. Here let’s take a look at the Average:
Too many numbers after the decimal ? no worry, it’s possible and easy to format the results:
You can export your results into different format :
The results can also be saved into a JSON file. If you want to retrieve
the results the next time that you open your Shiny app you can either
upload it locally or store it remotely and provide a URL that points to
the report (within the report argument of the pivta()
function).
Below an example of the usage of pivta()
on Shiny:
library(shiny)
library(pivta)
library(ggplot2)
ui <- fluidPage(
h1("The Pivot Table"),
pivtaOutput(outputId = "pivot_table"),
h1("The Plot"),
plotOutput(outputId = "plt1")
)
server <- function(input, output) {
output$pivot_table <- renderPivta({
pivta(dsource = "https://gist.githubusercontent.com/feddelegrand7/b366864aabf9653361f461cbf972d97c/raw/a62c4672f2f5824b2634a66c948e6258d7c65323/mpg.csv")
})
output$plt1 <- renderPlot({
ggplot(mpg, aes(cty, hwy)) +
geom_point(col = "#324C63")
})
}
shinyApp(ui = ui, server = server)
Finally, feel free to try the other features provided by the WebDataRocks JS library. You can read the complete documentation here
Please note that the pivta project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.