Learn R Programming

⚠️There's a newer version (1.11.1) of this package.Take me there.

Shiny

Shiny is a new package from RStudio that makes it incredibly easy to build interactive web applications with R.

For an introduction and examples, visit the Shiny Dev Center.

Features

  • Build useful web applications with only a few lines of code—no JavaScript required.
  • Shiny applications are automatically "live" in the same way that spreadsheets are live. Outputs change instantly as users modify inputs, without requiring a reload of the browser.
  • Shiny user interfaces can be built entirely using R, or can be written directly in HTML, CSS, and JavaScript for more flexibility.
  • Works in any R environment (Console R, Rgui for Windows or Mac, ESS, StatET, RStudio, etc.).
  • Attractive default UI theme based on Bootstrap.
  • A highly customizable slider widget with built-in support for animation.
  • Pre-built output widgets for displaying plots, tables, and printed output of R objects.
  • Fast bidirectional communication between the web browser and R using the httpuv package.
  • Uses a reactive programming model that eliminates messy event handling code, so you can focus on the code that really matters.
  • Develop and redistribute your own Shiny widgets that other developers can easily drop into their own applications (coming soon!).

Installation

To install the stable version from CRAN, simply run the following from an R console:

install.packages("shiny")

To install the latest development builds directly from GitHub, run this instead:

if (!require("devtools"))
  install.packages("devtools")
devtools::install_github("rstudio/shiny")

Getting Started

To learn more we highly recommend you check out the Shiny Tutorial. The tutorial explains the framework in-depth, walks you through building a simple application, and includes extensive annotated examples.

We hope you enjoy using Shiny. If you have general questions about using Shiny, please use the Shiny mailing list. For bug reports, please use the issue tracker.

Bootstrap 3 migration

Shiny versions 0.10.2.2 and below used the Bootstrap 2 web framework. After 0.10.2.2, Shiny switched to Bootstrap 3. For most users, the upgrade should be seamless. However, if you have have customized your HTML-generating code to use features specific to Bootstrap 2, you may need to update your code to work with Bootstrap 3.

If you do not wish to update your code at this time, you can use the shinybootstrap2 package for backward compatibility.

If you prefer to install an older version of Shiny, you can do it using the devtools package:

devtools::install_version("shiny", version = "0.10.2.2")

Development notes

The Javascript code in Shiny is minified using tools that run on Node.js. See the tools/ directory for more information.

License

The shiny package is licensed under the GPLv3. See these files in the inst directory for additional details:

  • COPYING - shiny package license (GPLv3)
  • NOTICE - Copyright notices for additional included software

Copy Link

Version

Install

install.packages('shiny')

Monthly Downloads

486,176

Version

0.13.2

License

GPL-3 | file LICENSE

Maintainer

Winston Chang

Last Published

March 28th, 2016

Functions in shiny (0.13.2)

passwordInput

Create a password input control
invalidateLater

Scheduled Invalidation
htmlOutput

Create an HTML output element
HTML

Mark Characters as HTML
installExprFunction

Install an expression as a function
shiny-package

Web Application Framework for R
reactiveValues

Create an object for storing reactive values
brushedPoints

Find rows of data that are selected by a brush
brushOpts

Create an object representing brushing options
shinyDeprecated

Print message for deprecated functions in Shiny
observe

Create a reactive observer
plotOutput

Create an plot or image output element
renderPlot

Plot Output
session

Session object
fillRow

Flex Box-based row/column layouts
fixedPage

Create a page with a fixed layout
markRenderFunction

Mark a function as a render function
selectInput

Create a select list input control
titlePanel

Create a panel containing an application title.
icon

Create an icon
htmlTemplate

Process an HTML template
shiny-options

Global options for Shiny
registerInputHandler

Register an Input Handler
navlistPanel

Create a navigation list panel
actionButton

Action button/link
parseQueryString

Parse a GET query string from a URL
fillPage

Create a page that fills the window
sliderInput

Slider Input Widget
dateInput

Create date input
Progress

Reporting progress (object-oriented API)
absolutePanel

Panel with absolute positioning
bootstrapPage

Create a Bootstrap page
renderPrint

Printable Output
addResourcePath

Resource Publishing
reactivePlot

Plot output (deprecated)
splitLayout

Split layout
nearPoints

Find rows of data that are near a click/hover/double-click
column

Create a column within a UI definition
updateCheckboxInput

Change the value of a checkbox input on the client
reactiveText

Text output (deprecated)
createWebDependency

Create a web dependency
headerPanel

Create a header panel
dateRangeInput

Create date range input
reactiveUI

UI output (deprecated)
renderText

Text Output
observeEvent

Event handler
renderDataTable

Table output with the JavaScript library DataTables
shinyServer

Define Server Functionality
updateCheckboxGroupInput

Change the value of a checkbox group input on the client
singleton

Include content only once
flowLayout

Flow layout
NS

Namespaced IDs for inputs/outputs
req

Check for required values
radioButtons

Create radio buttons
is.reactivevalues

Checks whether an object is a reactivevalues object
fileInput

File Upload Control
maskReactiveContext

Evaluate an expression without a reactive context
downloadHandler

File Downloads
updateRadioButtons

Change the value of a radio input on the client
updateDateRangeInput

Change the start and end values of a date range input on the client
numericInput

Create a numeric input control
showReactLog

Reactive Log Visualizer
exprToFunction

Convert an expression to a function
reactivePrint

Print output (deprecated)
reactiveTimer

Timer
include

Include Content From a File
repeatable

Make a random number generator repeatable
reactiveTable

Table output (deprecated)
sidebarLayout

Layout a sidebar and main area
tabsetPanel

Create a tabset panel
shinyApp

Create a Shiny app object
renderImage

Image file output
bootstrapLib

Bootstrap libraries
suppressDependencies

Suppress web dependencies
updateTabsetPanel

Change the selected tab on the client
domains

Reactive domains
serverInfo

Collect information about the Shiny Server environment
renderUI

UI Output
builder

HTML Builder Functions
downloadButton

Create a download button or link
makeReactiveBinding

Make a reactive variable
conditionalPanel

Conditional Panel
viewer

Viewer options
textOutput

Create a text output element
runGadget

Run a gadget
updateSliderInput

Change the value of a slider input on the client
clickOpts

Create an object representing click options
textInput

Create a text input control
checkboxGroupInput

Checkbox Group Input Control
helpText

Create a help text element
verbatimTextOutput

Create a verbatim text output element
mainPanel

Create a main panel
updateSelectInput

Change the value of a select input on the client
dblclickOpts

Create an object representing double-click options
shinyUI

Create a Shiny UI handler
submitButton

Create a submit button
plotPNG

Run a plotting function and save the output as a PNG
tabPanel

Create a tab panel
hoverOpts

Create an object representing hover options
inputPanel

Input panel
reactivePoll

Reactive polling
navbarPage

Create a page with a top level navigation bar
runExample

Run Shiny Example Applications
removeInputHandler

Deregister an Input Handler
outputOptions

Set options for an output object.
knitr_methods

Knitr S3 methods
callModule

Invoke a Shiny module
fluidPage

Create a page with fluid layout
stopApp

Stop the currently running Shiny app
runApp

Run Shiny Application
reactiveValuesToList

Convert a reactivevalues object to a list
validate

Validate input values and other conditions
knit_print.html

Knitr S3 methods
checkboxInput

Checkbox Input Control
reactive

Create a reactive expression
updateDateInput

Change the value of a date input on the client
validateCssUnit

Validate proper CSS formatting of a unit
runUrl

Run a Shiny application from a URL
isolate

Create a non-reactive scope for an expression
tableOutput

Create a table output element
renderTable

Table Output
sidebarPanel

Create a sidebar panel
updateNumericInput

Change the value of a number input on the client
pageWithSidebar

Create a page with a sidebar
reactiveFileReader

Reactive file reader
wellPanel

Create a well panel
verticalLayout

Lay out UI elements vertically
withMathJax

Load the MathJax library and typeset math expressions
updateTextInput

Change the value of a text input on the client
withTags

Evaluate an expression using tags
withProgress

Reporting progress (functional API)
stacktrace

Stack trace manipulation functions
tag

HTML Tag Object