Blog posts on Data Science, Machine Learning, Data Mining, Artificial Intelligence, Spark Machine Learning

Thursday, March 20, 2014

Build Web applications using Shiny R

Ever since I’ve started working on R , I always wondered how I can present
the results of my statistical models as web applications. After doing some
research over the internet I’ve come across – ShinyR – a new package
from RStudio which can be used to develop interactive web applications with R.
Before going into how to build web apps using R, let me give you some overview
about ShinyR.

  • No JavaScript/HTML knowledge required. 
  • Can build interactive web applications which can load the data dynamically.
  • Pre-Built output widgets for displaying plots, tables interactively are available.
  • Works in any R environment.
  • Shiny Apps can be hosted locally/on self-hosted Shiny Server/Rstudio-hosted                              Shiny Server – in today’s post we will see hosting locally.

 Building a shiny App

Shiny application have two components: a user-interface definition and server script,
 and any additional data, scripts, or other resources required to support the
UI script (ui.R): In this script we define the UI layout of the webpage. We can make
 use of inbuilt UI controls/widgets for displaying output and for creating UI layout..
Server Script (server.R): In this script, the actual business logic/ code for statistical
models, plotting the output is defined. It accepts inputs  from UI layer and compute
outputs send back the response to the UI layer. The basic task of a Shiny server
script is to define the relationship between inputs and outputs.

Understanding UI.R script:

library(shiny) #load shiny package
ds = read.csv("inputdata.csv") #load data
x = names(ds) # Define UI for application that plots distributions
# Application title
headerPanel("Demo Shiny Application"),
#sidebar panel to the left side of the page for input controls, slider & dropdown
sliderInput('Year', 'Year', min=2010, max=2012,
value=min(2010,2012), step=1, round=0),
selectInput('select', 'Select Criteria', c(x[3],x[9],x[10],x[11],x[12],x[26]))
#main panel for displaying outputs, Histograms, summary
 ) ))

Notice in particular, in the above code sidebarPanel and mainPanel functions
 are called with two arguments - corresponding to the two inputs and
 two outputs displayed.

In the above image we can see the layout which contains a slider with year range,
where based on the year selection the dataset will be taken into consideration.
Dropdownlist containing varaibles, placeholder to display the graphs, table to
display the summaries of the models.

Understanding Server.R

In the above script, we can observe that all the logic for the exploratory analysis is
written in server.R script. It contains a main function called ShinyServer() 
wherein we can write reactive functions,reactive plots, outputs. The outputs
 are send back to the UI layer.
In the above code, I have written logic which contains data fetching, 
modification, setting the dataset based on the year selected in the 
slider (reactive function), displaying histogram based on the selection 
on slider and dropdownlist,writing summary to a table.

Deploying the application:

Once we are done with the application, next step is to deploy the application. 
Using Shiny, we have two different options to move the application to Production.
  • ** Create a local- self-hosted Shiny Server on Linux platform, here.
  • ** Host on the R-Studio's Shiny server, explained here
Deploying locally:

As mentioned in the beginning of the post, in order to deploy locally, we make
use of GIST. The steps are quite simple:
  • ** Upload the Server.R & UI.R files to the website.
  • ** Uploading the files gives you an ID - in my case - I got "8942533"
  • ** After finishing upload, open R and run the below code:
  • The model will be shown as web application will be displayed
 the browser with inputs for selection & outputs to display.


  1. Thank you for the auspicious write up. It in reality was once a leisure account it.Excellent items from you, man. I have be mindful your stuff prior to and you are simply extremely great. I really like what you have got here, certainly like what you are stating and the best way during which you say it. You’re making it enjoyable and you continue to care for to stay it sensible. I can’t wait to read far more from you. That is really a terrific web site.
    Custom essay writing service

  2. Before I started working as a web developer for Dissertation Writing Service, I enrolled in various courses and enabled myself to excel in my organization. Working hard is a simple thing that can made you succeed.

  3. IT is ruling the world, I’m a professional dissertation proposal writer and I have students coming for help in their dissertation writings all the time. Most of the time I have students of computer science and information technology to write their reports almost 80% of the crowd is of computer studies. I think other fields are obsoleting gradually. Anyways, I liked your blog, I’ll recommend to my students.

  4. Hey everyone, I am Oliver & I am a college student. I am here to find some social science assignment help online and I think here are many professional academic writers available to help me out.

  5. C++ web application development Modern C++ has a web GUI library called Wt. With widgets, you can create highly interactive online user interfaces without writing a single word of JavaScript. You can concentrate on functionality because Wt takes care of all request processing and page rendering for you.

  6. I remember during covid I have nothing to do because I offer Dubai city tour deals before that. I started learning web development and now I am a professional in this field.

  7. When I start working as a web developer for UK law essay writers, I enrolled in various courses and enabled myself to excel in my organization. Working hard is a simple thing that can made you succeed.

    UK law essay writers

  8. Shiny R is a powerful tool that enables developers to build interactive web applications using the R programming language. It provides an easy-to-use interface for developers to create dynamic and interactive web applications without having to write complex code. With Shiny R, developers can quickly create data-driven web applications with minimal effort. The application can be used for a wide range of tasks such as data visualization, machine learning, data analysis, and more. With Shiny R, developers can easily develop robust and feature-rich web applications in no time. Most students are drawn to these types of articles and information, but they are unable to prepare for their exams, If you have been struggling with your exams and want assistance, pay to do my exam for me is dedicated to helping students get higher grades on their examinations by providing them with the best available resources, including quality academic services.

  9. This blog post provides a comprehensive guide to harnessing the power of Shiny R for creating interactive web applications. It's a valuable resource for anyone interested in exploring this innovative approach to data visualization and user-friendly interfaces. If you're in need services of help write my assignment, look no further. British Assignments Help offers reliable and professional services to help write your assignment. Trust them to deliver high-quality solutions tailored to your specific requirements.

  10. When it comes to building web apps, investing in professional help is crucial. pay for assignment services ensures that you receive top-notch expertise and timely delivery, allowing you to focus on other aspects of your project. Don't hesitate to seek assistance from reliable providers who can bring your web app vision to life. Remember, investing in quality support leads to efficient and successful outcomes.

  11. One of the most significant monthly purchases for most people is food. POS Software For Grocery in Pakistan have decided to open several other locations. Opening numerous locations may seem exciting, but managing them effectively requires a powerful management system that keeps you informed of everything that happens across all of your grocery store's locations. Using a Point of Sale (POS) system's sophisticated features, you can effectively manage your expanding grocery business.