Book Image

Web Application Development with R Using Shiny Second Edition - Second Edition

By : Chris Beeley
Book Image

Web Application Development with R Using Shiny Second Edition - Second Edition

By: Chris Beeley

Overview of this book

R is a highly flexible and powerful tool for analyzing and visualizing data. Most of the applications built using various libraries with R are desktop-based. But what if you want to go on the web? Here comes Shiny to your rescue! Shiny allows you to create interactive web applications using the excellent analytical and graphical capabilities of R. This book will guide you through basic data management and analysis with R through your first Shiny application, and then show you how to integrate Shiny applications with your own web pages. Finally, you will learn how to finely control the inputs and outputs of your application, along with using other packages to build state-of-the-art applications, including dashboards.
Table of Contents (14 chapters)
Web Application Development with R Using Shiny Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Info boxes


We have already seen how to use icons earlier in the chapter, but Shiny dashboard makes a nice feature of it by expanding and coloring them to draw attention to key pieces of information. An info box can be drawn statically as follows:

infoBox(width = 3, "Shiny version", "0.12",
  icon = icon("desktop"))

As you can see, the width can be set (using the 12 span rule from the standard bootstrap functions we saw earlier in the chapter) with title (Shiny version) and value (0.12, although you may often wish to pass a number). This function is placed within dashboardBody() in the ui.R file.

Although you may sometimes wish to hard-code info boxes in this way (to show version numbers of an application, as in this case), in the majority of cases, you are going to produce this content dynamically. In this case, you will as always need to do some preparation on server.R first. Here is the code for the first info box:

output$days <- renderInfoBox({
  infoBox(
    "Days", input$dateRange[2...