Learn what the heck shiny is and how you use it!
# variable assignment a <- 1 a # functions paste0(c("SQL","Super"),c("Bits","Heroes"))
library(data.table) library(shiny) defaultdisplay<-list( width="100%", height="75%" ) shinyAppDir( system.file("examples/06_tabsets", package="shiny"), options = defaultdisplay )
A shiny application report consists of two functions:
shinyServer()
shinyUI()
One says what to execute and the other states how to present it. Do all data manipulation, chart production in shinyServer()
defaultdisplay<-list(width="100%", height="75%") shinyApp( ui = fluidPage(), , server = function(input, output) {} , options = defaultdisplay )
You typically split into two files:
shinyServer()
shinyUI()
This can then be run with runApp()
You can do a single file example app.R
which contains both functions but this is typically better for very short apps.
Use these just inside shinyUI()
to produce a layout
lsp <- function(package, all.names = FALSE, pattern) { package <- deparse(substitute(package)) ls( pos = paste("package", package, sep = ":"), all.names = all.names, pattern = pattern ) } data.table(`Page Types`=lsp(shiny,pattern = "Page"))
shinyApp( ui = fluidPage(dateInput("datePicker", "Pick a date:", format="dd/mm/yy"), dateRangeInput("dateRange", "Pick dates:", start=Sys.Date(), end=Sys.Date() ) ), server = function(input, output) {} ,options = defaultdisplay )
shinyApp( ui = fluidPage(numericInput("vals", "Insert a number:", value=15, min=10) ), server = function(input, output) {} ,options = defaultdisplay )
shinyApp( ui = fluidPage(sliderInput("vals", "Insert a number:", min=0, max=50, value=15) ), server = function(input, output) {} ,options = defaultdisplay )
shinyApp( ui = fluidPage(textInput("char", "Insert text:") ), server = function(input, output) {} ,options = defaultdisplay )
shinyApp( ui = fluidPage(tags$textarea(id="charbox", rows=3, cols=40, "Default value") ), server = function(input, output) {} ,options = defaultdisplay )
shinyApp( ui = fluidPage(selectInput("multiselect", "Pick favourites:", c("Green","Red","Blue"), multiple=TRUE) ), server = function(input, output) {} ,options = defaultdisplay )
data.table(`Input controls`=lsp(shiny,pattern = "Input"))
shinyApp( ui = fluidPage(textInput("char", "Insert text:") , textOutput("text") ), server = function(input, output) { output$text <- renderText(input$char) } ,options = defaultdisplay )
shinyApp( ui = fluidPage(tableOutput("basictable") ), server = function(input, output) { output$basictable <- renderTable(head(iris,5)) } ,options = defaultdisplay )
shinyApp( ui = fluidPage(dataTableOutput("datatable") ), server = function(input, output) { output$datatable <- renderDataTable(head(iris,5)) } ,options = defaultdisplay )
shinyApp( ui = fluidPage(plotOutput("chart") ), server = function(input, output) { output$chart <- renderPlot(pairs(iris)) } ,options = defaultdisplay )
a <- reactive({input$a}) a
shinyApp( ui = fluidPage(textInput("char", "Insert text:") , textOutput("textA"),textOutput("textB") ), server = function(input, output) { char<-reactive({rep(input$char,5)}) output$textA <- renderText(paste(char(),collapse="+")) output$textB <- renderText(paste(char(),collapse="-")) } ,options = defaultdisplay )
shinythemes
rvest
shiny::runApp()
shinyApps
packageAdd the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.