Learning Shiny
()
About this ebook
Related to Learning Shiny
Related ebooks
Hands-On Time Series Analysis with R: Perform time series analysis and forecasting using R Rating: 0 out of 5 stars0 ratingsMastering Data Analysis with R Rating: 5 out of 5 stars5/5Creating Data Stories with Tableau Public Rating: 0 out of 5 stars0 ratingsLearning Bayesian Models with R Rating: 5 out of 5 stars5/5R for Data Science Rating: 5 out of 5 stars5/5Getting Started with Python Data Analysis Rating: 0 out of 5 stars0 ratingsMastering Predictive Analytics with R Rating: 4 out of 5 stars4/5Practical Data Science Cookbook - Second Edition Rating: 0 out of 5 stars0 ratingsMastering Machine Learning with R Rating: 0 out of 5 stars0 ratingsRStudio for R Statistical Computing Cookbook Rating: 0 out of 5 stars0 ratingsLearning Social Media Analytics with R Rating: 0 out of 5 stars0 ratingsMastering Social Media Mining with R Rating: 5 out of 5 stars5/5R Graph Essentials Rating: 0 out of 5 stars0 ratingsPython Data Analysis: Perform data collection, data processing, wrangling, visualization, and model building using Python Rating: 0 out of 5 stars0 ratingsR Object-oriented Programming Rating: 3 out of 5 stars3/5Web Application Development with R Using Shiny - Second Edition Rating: 0 out of 5 stars0 ratingsggplot2 Essentials Rating: 0 out of 5 stars0 ratingsR Data Science Essentials Rating: 2 out of 5 stars2/5Mastering Text Mining with R Rating: 0 out of 5 stars0 ratingsMastering RStudio – Develop, Communicate, and Collaborate with R Rating: 0 out of 5 stars0 ratingsR in Action, Third Edition: Data analysis and graphics with R and Tidyverse Rating: 0 out of 5 stars0 ratingsR Programming - a Comprehensive Guide: Software Rating: 0 out of 5 stars0 ratingsLearning RStudio for R Statistical Computing Rating: 4 out of 5 stars4/5R Data Visualization Cookbook Rating: 0 out of 5 stars0 ratingsMastering Scientific Computing with R Rating: 3 out of 5 stars3/5Learning Predictive Analytics with R Rating: 0 out of 5 stars0 ratingsR High Performance Programming Rating: 4 out of 5 stars4/5R: Recipes for Analysis, Visualization and Machine Learning Rating: 0 out of 5 stars0 ratingsR Graphs Cookbook Second Edition Rating: 3 out of 5 stars3/5
Programming For You
Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Excel 101: A Beginner's & Intermediate's Guide for Mastering the Quintessence of Microsoft Excel (2010-2019 & 365) in no time! Rating: 0 out of 5 stars0 ratingsExcel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5C Programming For Beginners: The Simple Guide to Learning C Programming Language Fast! Rating: 5 out of 5 stars5/5HTML in 30 Pages Rating: 5 out of 5 stars5/5JavaScript All-in-One For Dummies Rating: 5 out of 5 stars5/5C# Programming from Zero to Proficiency (Beginner): C# from Zero to Proficiency, #2 Rating: 0 out of 5 stars0 ratingsPython: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5Python QuickStart Guide: The Simplified Beginner's Guide to Python Programming Using Hands-On Projects and Real-World Applications Rating: 0 out of 5 stars0 ratingsCoding with JavaScript For Dummies Rating: 0 out of 5 stars0 ratingsSQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5Beginning Programming with C++ For Dummies Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 0 out of 5 stars0 ratings
Reviews for Learning Shiny
0 ratings0 reviews
Book preview
Learning Shiny - Resnizky Hernán G.
Table of Contents
Learning Shiny
Credits
About the Author
Acknowledgements
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Introducing R, RStudio, and Shiny
About R
Installing R
A quick guide to R
About RStudio
Installing RStudio
A quick guide to RStudio
About Shiny
Installing and loading Shiny
Summary
2. First Steps towards Programming in R
Object-oriented programming concepts
Variables in R
Classes in depth
Vectors
Lists
Matrices and arrays
Data frames
Factors
Element selection
Selecting elements from vectors
Selecting elements from arrays
Selecting elements from lists
Selecting elements from data frames
Control structures in R
The if...else block
The while loop
The for loop
The switch statement
Reading data
Delimited data
Reading line by line
Reading a character set
Reading JSON
Reading XML
Reading databases – SQL
Reading data from external sources
Summary
3. An Introduction to Data Processing in R
Sorting elements
sort() versus order()
Basic summary functions
grep and regular expressions
A brief introduction to regular expressions
Sets
Shortcuts
Dot
Non-printable characters
Negation
Alternation
Quantifiers
Special quantifiers
Anchors
Expressions
Escapes
Examples
Example 1
Example 2
The lapply, vapply, sapply, and apply functions
Examples
plyr
The data.table package
reshape2
Summary
4. Shiny Structure – Reactivity Concepts
Shiny as a package
An introduction to server.R and UI.R
UI.R as a JavaScript/HTML wrapper
Including HTML within UI.R
The concept of reactivity
Reactive independent processes within an application
An introduction to global.R
Running a Shiny web application
An overview of simple examples
Example 1 – a general example of how render-like functions work
Example 2 – using reactive objects
Example 3 – Loading data outside reactive context
Example 4 – using global.R
Summary
5. Shiny in Depth – A Deep Dive into Shiny's World
UI.R
The structure
conditionalPanel() – Example 1
conditionalPanel() – Example 2
An example on the use of tabPanel() in tabsetPanel()
Inputs
Free inputs
Lists
Dates
Files
Buttons
submitButton() with conditionalPanel()
downloadButton() - an example
Optimal usage of server.R and global.R
Shiny options
Summary
6. Using R's Visualization Alternatives in Shiny
The graphics package
Barplot
Histograms
Boxplots
Pie charts
Points
Lines
Plotting options
Legends
Plotting a fully customized plot with the graphics package
Including a plot in a Shiny application
A walk around the googleVis package
googleVis in R
An overview of some functions
Candlesticks
Geolocalized visualizations
Treemaps
Motion chart
googleVis in Shiny
A small example of googleVis in Shiny
ggplot2 – first steps
ggplot's main logic – layers and aesthetics
Layers
Aesthetics
Some graphical tools in ggplot2
geom_point
geom_line
geom_bars
An applied example with multiple layers
ggplot and Shiny
Summary
7. Advanced Functions in Shiny
The validate() function
The isolate() function
The observe() function
The reactiveValues() function
Input updates
Summary
8. Shiny and HTML/JavaScript
The www directory
Creating UIs from plain HTML
The use of tags in UI.R
JavaScript
CSS
Other tags
Relating HTML/JavaScript and server.R
Summary
9. Interactive Graphics in Shiny
Interaction possibilities within R graphics
D3.js integration
What is D3?
networkD3
An introduction to htmlwidgets
D3BarChart.R
D3BarChart.js
D3BarChart.yaml
Summary
10. Sharing Applications
runGist/runGitHub/runUrl
shinyapps.io
Deploying applications on your own server
Installing R
Installing the RStudio server
Installing the Shiny package
run_as
listen
location
site_dir/app_dir
directory_index
Summary
11. From White Paper to a Full Application
Problem presentation
Conceptual design
Pre-application processing
Workclass
global.R coding
global.R
UI.R partial coding
UI.R
server.R coding
Gender bar chart
Age chart
Ethnic bar chart
Marital status
Education curve
Earnings chi-square test
Activity summary
UI.R completion
UI.R
Styling
Discovering insights in the application
Summary
Reference
Index
Learning Shiny
Learning Shiny
Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: October 2015
Production reference: 1141015
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78528-090-0
www.packtpub.com
Credits
Author
Hernán G. Resnizky
Reviewers
Dean Attali
William Kyle Hamilton
Achyutuni Sri Krishna Rao
Commissioning Editor
Kunal Parikh
Acquisition Editors
Shaon Basu
Larissa Pinto
Content Development Editor
Ritika Singh
Technical Editor
Shiny Poojary
Copy Editor
Kausambhi Majumdar
Project Coordinator
Judie Jose
Proofreader
Safis Editing
Indexer
Rekha Nair
Graphics
Disha Haria
Production Coordinator
Melwyn D'sa
Cover Work
Melwyn D'sa
About the Author
Hernán G. Resnizky is a data scientist who is actually working as a freelance consultant in Argentina. He has worked for national and international clients from diverse industries in different domains related to data handling and analysis, such as data visualization, text mining, machine learning modeling, and so on. For over two years, he worked as a senior data scientist for Despegar (http://www.despegar.com/), the leading online travel agency in Latin America.
Regarding his academic background, Hernán has completed a licentiate degree (a five-year study program that is equivalent to a bachelor's and a master's degree) in sociology from the University of Buenos Aires. Also, he has completed his masters of science courses in data mining from the same university.
Hernán has a blog, www.hernanresnizky.com, where he writes about data science and R-related topics. Also, he has reviewed Web Application Development with R Using Shiny for Packt Publishing in the past.
Acknowledgements
I think it would be totally unfair if I didn't start this acknowledgement by thanking the whole R community, as I believe that a considerable part of my knowledge of R and Shiny was gained from gathering information from forums, blogs, and tutorials. In this sense, if I had to think of someone in particular, I should thank Hadley Wickham not only for his packages, but also for his wonderful tutorials, and from RStudio's Shiny crew, I would like to thank Joe Cheng and Winston Chang for their constant efforts to make the Shiny project grow by answering questions, posting articles, and even sharing their repositories.
I would also like to dedicate this book to my former colleagues at Despegar (http://www.despegar.com/) where I spent over two years of constant learning facing new challenges every day, to my clients who believe in my capabilities every day, and to my former classmates and professors at the University of Buenos Aires.
Of course, I can't leave out my family and friends, who despite not understanding completely what I do for a living, always encouraged me to carry on. Finally, I would like to thank my girlfriend for supporting me in this enriching but tough process of writing a book.
About the Reviewers
Dean Attali is a software engineer, technical consultant, and freelance technical writer. He studied computer science at the University of Waterloo, Canada, and has years of experience working for large companies (Google and IBM) as well as small startups (tagged.com, wish.com, and, glittr.com). After spending a few years in San Francisco and getting a good taste of the Silicon Valley tech life, Dean was curious to see what academia had to offer and went on to pursue a master's degree from the University of British Columbia in Vancouver, Canada.
Dean was introduced to R while he was in graduate school, and he quickly developed a passion for R and open source, with a special interest in the Shiny framework. He is now an active member of the R community and is the author of several R packages, most notably shinyjs
.
Apart from coding, Dean is also addicted to playing soccer, travelling at any given (and nongiven) moment, getting into philosophical debates, and meeting new people. You can learn more, or just say hello
, by visiting him at http://deanattali.com.
William Kyle Hamilton earned his bachelor of arts degree in psychology with a minor in political science from the University of California, Merced in 2012 and is now a PhD student in the Health Psychology program at the University of California, Merced. In addition to this, William runs workshops for academic requesters who wish to use Amazon Mechanical Turk for their studies. William is a community member of the rOpenSci group and has authored the R packages: IRTShiny, MAVIS, RCryptsy, and RStars. Additionally, William serves as a board member for the UC Merced Alumni Association, as well for the Merced County Advisory Board on Alcohol and Drug Problems.
Achyutuni Sri Krishna Rao is an R programmer, data scientist, and civil engineer with more than 4 years of work experience in the public sector and corporate companies. Currently, he is a data scientist associate consultant in one of the leading pharmaceutical consultant firms. He loves to work in the domain of healthcare, power, and construction industry. He strongly believes in the application of Big Data-driven solutions in sectors heavily dominated by core engineering principles.
With a master's in Enterprise Business Analytics from NUS, Achyutuni is a freelancer and R code blogger too. He blogs about providing holistic analytical solutions on open source data using a multitude of machine learning algorithms in R. He is also a corporate trainer in R programming.
www.PacktPub.com
Support files, eBooks, discount offers, and more
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Free access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.
Preface
R is a growing language that is gaining more and more space among data scientists. With over 7,000 packages, you can cover every stage within R: from data extraction, cleansing, and processing to advanced analysis, modelling, or visualization. In this context, Shiny is the tool that will take your R code to the next level, as you will be able to share all your outcomes with anyone through a dynamic web application. Shiny is not just a dashboard tool, but it is the gateway to unveiling hidden facts about data, even for nonexpert users. In other words, developing a Shiny application is like providing access to the R universe.
What this book covers
Chapter 1, Introducing R, RStudio, and Shiny, is a brief introduction to R, RStudio, and Shiny, and it contains the necessary information to install them.
Chapter 2, First Steps towards Programming in R, is a general introduction to some key concepts and basic operations in R.
Chapter 3, An Introduction to Data Processing in R, covers some techniques to clean and process data in R using the functions of specific packages. Data processing is definitely one of the key aspects to take into account in order to produce a successful application.
Chapter 4, Shiny Structure – Reactivity Concepts, introduces the reader to Shiny's internal structure and logic.
Chapter 5, Shiny in Depth – A Deep Dive into Shiny's World, examines the different possibilities within the Shiny structure for each of its components. For the user interface section, it presents the different elements available, and for the backend section, it gives some hints about how to optimally organize code.
Chapter 6, Using R's Visualization Alternatives in Shiny, covers the most important graphical packages in R and how to include their outcomes in a Shiny application. This is a key aspect when developing an application, as graphics are usually one of the most common ways to present information in a web application.
Chapter 7, Advanced Functions in Shiny, introduces some advanced functions to control more complex interactions and explains how to use them.
Chapter 8, Shiny and HTML/JavaScript, explains how to include custom JavaScript, HTML, and CSS code in a Shiny application, as Shiny's frontend is HTML-based/JavaScript-based.
Chapter 9, Interactive Graphics in Shiny, covers two topics, whose common root is interaction with graphics. Firstly, the newly released functionality of Shiny's event listener within R's standard graphics and then the generation of custom JavaScript visualizations, and how to include them in a Shiny application.
Chapter 10, Sharing Applications, introduces different possibilities to publish applications right from passing the entire code to uploading it to a server and making it accessible via URL.
Chapter 11, From White Paper to a Full Application, simulates a real-world situation where a web application is needed and explains the whole process from scratch in a holistic way. It not only explains the code, but also gives some tips about how to structure it and how to communicate with data.
What you need for this book
The software used in this book is free and open source and is available for Linux, Mac, and Windows. An internet connection is necessary for some of the topics covered in this book.
Who this book is for
This book is suitable even for readers with no experience in R, Shiny, or HTML at all. However, having some previous knowledge in any of these fields will definitely be an advantage to understand this book quickly.
Conventions
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: If it is a .rda or .RData file, it will open in both.
A block of code is set as follows:
#Load XML library
library(XML)
#URL Public API Worldbank Data Catalog in XML format
url <- http://api.worldbank.org/v2/datacatalog?format=xml
#Load XML document
xml.obj <- xmlTreeParse(url)
Any command-line input or output is written as follows:
> class(xml.obj) [1] XMLDocument
XMLAbstractDocument
New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: In RStudio, whenever a function is declared, it will appear in the Environment section under the Functions section:
Note
Warnings or important notes appear in a box like this.
Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Downloading the example code
You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
Downloading the color images of this book
We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand