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

[This article was first published on Educate-R - R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

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 about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

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)