Book Image

Web Application Development with R Using Shiny - Third Edition

By : Chris Beeley, Shitalkumar R. Sukhdeve
Book Image

Web Application Development with R Using Shiny - Third Edition

By: Chris Beeley, Shitalkumar R. Sukhdeve

Overview of this book

Web Application Development with R Using Shiny helps you become familiar with the complete R Shiny package. The book starts with a quick overview of R and its fundamentals, followed by an exploration of the fundamentals of Shiny and some of the things that it can help you do. You’ll learn about the wide range of widgets and functions within Shiny and how they fit together to make an attractive and easy to use application. Once you have understood the basics, you'll move on to studying more advanced UI features, including how to style apps in detail using the Bootstrap framework or and Shiny's inbuilt layout functions. You'll learn about enhancing Shiny with JavaScript, ranging from adding simple interactivity with JavaScript right through to using JavaScript to enhance the reactivity between your app and the UI. You'll learn more advanced Shiny features of Shiny, such as uploading and downloading data and reports, as well as how to interact with tables and link reactive outputs. Lastly, you'll learn how to deploy Shiny applications over the internet, as well as and how to handle storage and data persistence within Shiny applications, including the use of relational databases. By the end of this book, you'll be ready to create responsive, interactive web applications using the complete R (v 3.4) Shiny (1.1.0) suite.
Table of Contents (11 chapters)

Shiny gadgets

So far, we have seen how to present data with Shiny apps for the end user. Now it's time to develop gadgets for R coders. The main difference between Shiny apps and Shiny gadgets is that apps are deployed on servers, such as shinyapps.io or a deployable server, but gadgets are to be called from the code from R Script. At the same time, Shiny gadgets can be registered with RStudio as add-ins.

Shiny gadgets have been developed to make repeatable tasks easily doable, such as importing data in the right formats, cleaning data, manipulating, or visualization. Now let's see how to write Shiny gadgets:

library(shiny) 
library(miniUI) 
 
newGadget <- function(inputVal1, inputVal2) { 
 
  ui <- miniPage( 
    gadgetTitleBar("New Gadget"),  # title of Gadget 
    miniContentPanel( 
      # layout, inputs, outputs 
    ) 
  ) 
 
  server <- function...