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

Version two – grid layout (B)


The interface that we just produced demonstrates a lot of the key concepts in layout, but it's horribly ugly. Let's produce a nice interface. Here's the finished product:

ui.R

Now we'll step through the ui.R file looking at all the changes made over the original version. The custom header is made as follows:

library(shiny)
shinyUI(fluidPage(
  title = "Google Analytics",
  h2("Google Analytics",
    style = "font-family: 'Impact';
    color: purple; font-size: 32px;"),

As we saw elsewhere, it's very easy to make your own headers using h1(), h2(), and so on and to pass style information into them as done in the preceding code. In this case, you can see also that we have passed title = "Google Analytics" to fluidPage() in order to give the window/tab a title on the web browser (equivalent to the HTML <title> tag).

The next chunk, the first fluidRow() layout with the input widgets, contains a few important changes:

fluidRow(
  column(4,
    wellPanel(
      dateRangeInput...