Learn R Programming

⚠️There's a newer version (1.9.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.

If you have general questions about using Shiny, please use the RStudio Community website. For bug reports, please use the issue tracker.

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.
  • Prebuilt 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("remotes"))
  install.packages("remotes")
remotes::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.

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.

Guidelines for contributing

We welcome contributions to the shiny package. Please see our CONTRIBUTING.md file for detailed guidelines of how to contribute.

License

The shiny package as a whole is licensed under the GPLv3. See the LICENSE file for more details.

Copy Link

Version

Install

install.packages('shiny')

Monthly Downloads

543,282

Version

1.5.0

License

GPL-3 | file LICENSE

Maintainer

Last Published

June 23rd, 2020

Functions in shiny (1.5.0)

actionButton

Action button/link
bookmarkButton

Create a button for bookmarking/sharing
bootstrapPage

Create a Bootstrap page
MockShinySession

Mock Shiny Session
NS

Namespaced IDs for inputs/outputs
applyInputHandlers

Apply input handlers to raw input values
Progress

Reporting progress (object-oriented API)
brushOpts

Create an object representing brushing options
bootstrapLib

Bootstrap libraries
absolutePanel

Panel with absolute positioning
checkboxGroupInput

Checkbox Group Input Control
conditionalPanel

Conditional Panel
brushedPoints

Find rows of data selected on an interactive plot.
callModule

Invoke a Shiny module
createRenderFunction

Implement render functions
column

Create a column within a UI definition
clickOpts

Create an object representing click options
debounce

Slow down a reactive expression with debounce/throttle
deprecatedReactives

Deprecated reactive functions
domains

Reactive domains
diskCache

Create a disk cache object
dateRangeInput

Create date range input
dblclickOpts

Create an object representing double-click options
dateInput

Create date input
createWebDependency

Create a web dependency
downloadHandler

File Downloads
downloadButton

Create a download button or link
fillRow

Flex Box-based row/column layouts
fillPage

Create a page that fills the window
fileInput

File Upload Control
exprToFunction

Convert an expression to a function
getCurrentOutputInfo

Get output information
getQueryString

Get the query string / hash component from the URL
loadSupport

Load an app's supporting R files
helpText

Create a help text element
headerPanel

Create a header panel
icon

Create an icon
markdown

Insert inline Markdown
maskReactiveContext

Evaluate an expression without a reactive context
insertTab

Dynamically insert/remove a tabPanel
checkboxInput

Checkbox Input Control
htmlOutput

Create an HTML output element
exportTestValues

Register expressions for export in test mode
fixedPage

Create a page with a fixed layout
flowLayout

Flow layout
enableBookmarking

Enable bookmarking for a Shiny application
hoverOpts

Create an object representing hover options
insertUI

Insert and remove UI objects
plotOutput

Create an plot or image output element
fluidPage

Create a page with fluid layout
isolate

Create a non-reactive scope for an expression
makeReactiveBinding

Make a reactive variable
reactiveVal

Create a (single) reactive value
radioButtons

Create radio buttons
reactiveTimer

Timer
onBookmark

Add callbacks for Shiny session bookmarking events
reactive

Create a reactive expression
observeEvent

Event handler
inputPanel

Input panel
is.reactivevalues

Checks whether an object is a reactivevalues object
knitr_methods

Knitr S3 methods
plotPNG

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

Text Output
markOutputAttrs

Mark a render function with attributes that will be used by the output
installExprFunction

Install an expression as a function
navbarPage

Create a page with a top level navigation bar
freezeReactiveVal

Freeze a reactive value
markRenderFunction

Mark a function as a render function
navlistPanel

Create a navigation list panel
invalidateLater

Scheduled Invalidation
selectInput

Create a select list input control
renderUI

UI Output
onFlush

Add callbacks for Shiny session events
modalDialog

Create a modal dialog UI
numericInput

Create a numeric input control
isRunning

Check whether a Shiny application is running
observe

Create a reactive observer
req

Check for required values
pageWithSidebar

Create a page with a sidebar
repeatable

Make a random number generator repeatable
outputOptions

Set options for an output object.
parseQueryString

Parse a GET query string from a URL
memoryCache

Create a memory cache object
modalButton

Create a button for a modal dialog
reactiveValues

Create an object for storing reactive values
snapshotExclude

Mark an output to be excluded from test snapshots
snapshotPreprocessInput

Add a function for preprocessing an input before taking a test snapshot
registerInputHandler

Register an Input Handler
onStop

Run code after an application or session ends
removeInputHandler

Deregister an Input Handler
shinyAppTemplate

Generate a Shiny application from a template
shinyUI

Create a Shiny UI handler
serverInfo

Collect information about the Shiny Server environment
passwordInput

Create a password input control
reactlog

Reactive Log Visualizer
shinyDeprecated

Print message for deprecated functions in Shiny
reexports

Objects exported from other packages
reactiveValuesToList

Convert a reactivevalues object to a list
moduleServer

Shiny modules
runGadget

Run a gadget
runTests

Runs the tests associated with this Shiny app
showBookmarkUrlModal

Display a modal dialog for bookmarking
tableOutput

Create a table output element
updateDateInput

Change the value of a date input on the client
getShinyOption

Get or set Shiny options
tabsetPanel

Create a tabset panel
updateDateRangeInput

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

Define Server Functionality
showTab

Dynamically hide/show a tabPanel
renderCachedPlot

Plot output with cached images
sidebarLayout

Layout a sidebar and main area
stopApp

Stop the currently running Shiny app
updateSelectInput

Change the value of a select input on the client
updateQueryString

Update URL in browser's location bar
updateRadioButtons

Change the value of a radio input on the client
updateNumericInput

Change the value of a number input on the client
stacktrace

Stack trace manipulation functions
renderPrint

Printable Output
renderTable

Table Output
runUrl

Run a Shiny application from a URL
reactiveFileReader

Reactive file reader
safeError

Declare an error safe for the user to see
withProgress

Reporting progress (functional API)
verticalLayout

Lay out UI elements vertically
withMathJax

Load the MathJax library and typeset math expressions
varSelectInput

Select variables from a data frame
addResourcePath

Resource Publishing
shiny.appobj

Shiny App object
restoreInput

Restore an input value
shinyApp

Create a Shiny app object
renderDataTable

Table output with the JavaScript library DataTables
session

Session object
setBookmarkExclude

Exclude inputs from bookmarking
reactivePoll

Reactive polling
textOutput

Create a text output element
textAreaInput

Create a textarea input control
wellPanel

Create a well panel
textInput

Create a text input control
viewer

Viewer options
testServer

Reactive testing for Shiny server functions and modules
sizeGrowthRatio

Create a sizing function that grows at a given ratio
sliderInput

Slider Input Widget
updateSliderInput

Update Slider Input Widget
updateTabsetPanel

Change the selected tab on the client
showModal

Show or remove a modal dialog
submitButton

Create a submit button
updateCheckboxGroupInput

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

Create a tab panel
showNotification

Show or remove a notification
updateCheckboxInput

Change the value of a checkbox input on the client
updateTextAreaInput

Change the value of a textarea input on the client
updateTextInput

Change the value of a text input on the client
renderPlot

Plot Output
renderImage

Image file output
runApp

Run Shiny Application
runExample

Run Shiny Example Applications
shiny-package

Web Application Framework for R
setSerializer

Add a function for serializing an input before bookmarking application state
splitLayout

Split layout
titlePanel

Create a panel containing an application title.
snapshotPreprocessOutput

Add a function for preprocessing an output before taking a test snapshot
updateActionButton

Change the label or icon of an action button on the client
urlModal

Generate a modal dialog that displays a URL
validate

Validate input values and other conditions