Extending accessibility of open-source statistical software to the masses A shiny case study

October 6, 2016

(This article was first published on Educate-R - R, and kindly contributed to R-bloggers)

Extending accessibility of open-source statistical software to the masses: A shiny case study

Brandon LeBeau

University of Iowa


  • R is an open source statistical programming language.
    • Pros:
      • Common statistical procedures are found in R
      • Can extend functionality with packages/functions
    • Cons:
      • Need to be comfortable with code

Flexibility of R

  • R is powerful and flexible due to the many user written packages.
  • However, to capture this flexibility:
    • users need to be comfortable with programming
    • users need to find the package
    • users need to understand package specific syntax

R package documentation and examples


Blog posts




Weaknesses of these types of documentations

  • They still rely on user understanding and reading R code.
  • Not interactive, although the user can copy and paste code into an R session.
  • This type of documentation will not capture the nontraditional useR.
  • Shiny is the path to the nontraditional useR.

What is Shiny

Advantages of Shiny

  • User needs no R knowledge
  • App is viewed in the browser so able to use
    • Javascript
    • HTML
    • CSS
  • Multiple hosting options
  • Flexible Output

Disadvantages of Shiny

  • Need a R developer to create the app.
    • More difficult as the code is somewhat different compared to traditional R code.
    • Shiny uses reactive programming.

Components of Shiny

  1. User Interface (ui.r)
    • What the user sees and interacts with
  2. R Analysis (server.r)
    • The R code running behind the scenes

User Interface

    titlePanel("Telephones by region"),
        selectInput("region", "Region:", 
                    choices = colnames(WorldPhones)),
        helpText("Data from AT&T (1961) The World's Telephones.")


Server File

shinyServer(function(input, output) {

  output$phonePlot <- renderPlot({

    barplot(WorldPhones[ , input$region] * 1000, 
            main = input$region,
            ylab = "Number of Telephones",
            xlab = "Year")

Case Study

  • pdfsearch
    • Note, you may need rtools to install this package.
  • This following commands will run the pdfsearch shiny application locally.

Case Study 2



  • Shiny can give useRs an interactive framework to try out an R package.
  • Benefits include
    • interactivity
    • no errors (for well developed Shiny applications)
    • no need to learn R or package specific syntax
    • only need a browser, no need to have R install locally when hosted on a server.


To leave a comment for the author, please follow the link and comment on their blog: Educate-R - R.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.


Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)