How to Read Shiny Dropdown Input Values
Build Interactive Dashboards With R Shiny
What is a Shiny App?
The Shiny library helps you turn your analyses into interactive spider web applications without requiring HTML, CSS, or Javascript knowledge, and provides a powerful web framework for building web applications using R.
Existence able to create Shiny apps is a great skill to take because it enables you to communicate your insights to not-technical stakeholders and requite them the tools to conduct their own analysis!
Code
Skeleton
The skeleton of any Shiny app consists of a user interface (ui
) and a server
. The UI is where the visual elements are placed such as a scatter plot or dropdown menu. The server is where the logic of the app is implemented, for example, what happens once you click on the download button. And this exactly where Shiny shines: combining inputs with outputs.
library ( shiny ) ui <- fluidPage () server <- function ( input , output ){} shinyApp ( ui = ui , server = server )
Lay-out
Sidebar
Create a 2-column construction with a small console on the left and a main panel on the right.
ui <- fluidPage ( sidebarLayout ( sidebarPanel ( "This is the sidebar" ), mainPanel ( "Main panel goes here" ) ) )
Tabs
Distribute your data across multiple tabs (alternative to a sidebar layout).
tabsetPanel ( tabPanel ( title = "tab 1" , h1 ( "Overview" ), "Content goes here" ), tabPanel ( championship = "tab 2" , "The content of the second tab" ), tabPanel ( title = "tab 3" , "The content of the third tab" ) )
Example
Placeholders
Define a placeholder for plots, tables, and text in the user interface (ui
) and server side (server
).
- Text can be formatted as headers (e.yard.,
h1()
,h2()
) or printed in bold (strong()
) or italics (em()
) format. - The
ggplotly()
part tin convert aggplot2
plot into an interactive one (e.g., motility, zoom, export prototype features that are non available in the standardrenderPlot()
role). - Similarly, the
DT::dataTableOutput("tabular array")
(in theui
) and theDT::renderDataTable()
(in theserver
) from theDT
package enrich therenderTable
role. See a alive instance here.
# ui plotOutput ( outputId = "plot" ), tableOutput ( outputId = "table" ), textOutput ( outputId = "text" ) # ---------------------------- # server output $ plot <- renderPlot ({ plot ( 10 , y , ... ) }) output $ table <- renderTable ({ data }) output $ text <- renderText ({ "Some text" })
Control Widgets
Text box
# textbox that accepts both numeric and alphanumeric input textInput ( inputId = "title" , label = "Text box championship" , value = "Text box content" )
Example
Numeric input
# text box that only accepts numeric information between one and 30 numericInput ( inputId = "num" , label = "Number of cars to bear witness" , value = ten , min = i , max = 30 )
Example
Slider
# slider that goes from 35 to 42 degrees with increments of 0.1 sliderInput ( inputId = "temperature" , label = "Body temperature" , min = 35 , max = 42 , value = 37.5 , footstep = 0.1 )
Example
Range selector
# slider that allows the user to prepare a range (rather than a single value) sliderInput ( inputId = "price" , label = "Price (€)" , value = c ( 39 , 69 ), min = 0 , max = 99 )
Case
Radio buttons
# input field that allows for a unmarried selection radioButtons ( inputId = "radio" , label = "Choose your preferred time slot" , choices = c ( "09:00 - 09:30" , "09:30 - 10:00" , "10:00 - x:30" , "x:30 - 11:00" , "11:00 - eleven:30" ), selected = "10:00 - 10:30" )
Instance
Dropdown bill of fare
# a dropdown menu is useful when you have plenty of options and you don't desire to listing them all below one another selectInput ( inputId = "major" , characterization = "Major" , choices = c ( "Business Administration" , "Data Science" , "Econometrics & Operations Research" , "Economics" , "Liberal Arts" , "Industrial Engineering" , "Marketing Direction" , "Marketing Analytics" , "Psychology" ), selected = "Marketing Analytics" )
Example
Dropdown menu (multiple selections)
# dropdown carte du jour that allows for multiple selections (east.g., both R and JavaScript) selectInput ( inputId = "programming_language" , characterization = "Programming Languages" , choices = c ( "HTML" , "CSS" , "JavaScript" , "Python" , "R" , "Stata" ), selected = "R" , multiple = TRUE )
Example
Checkbox
# oftentimes used to let the user confirm their agreement checkboxInput ( inputId = "concord" , label = "I hold to the terms and weather" , value = True )
Case
Colorpicker
# either insert a hexadecmial color lawmaking or use the interactive picker library ( colourpicker ) # you may kickoff demand to install the package colourInput ( input = "colour" , characterization = "Select a colour" , value = "bluish" )
Example
Download Push
Add a download push to your Shiny app and so that users tin can directly download their current data selection in csv-format and open the data in a spreadsheet program (east.g., Excel).
ui <- fluidPage ( downloadButton ( outputId = "download_data" , label = "Download" ) ) server <- function ( input , output ) { output $ download_data <- downloadHandler ( filename = "download_data.csv" , content = function ( file ) { data <- filtered_data () write.csv ( data , file , row.names = FALSE ) } ) }
An Case
The Shiny app beneath visualizes Google'due south COVID-19 Community Mobility Reports of the Netherlands. A step-past-footstep tutorial (incl. source code) tin be establish hither.
See Also
- A course on learning Shiny and its necessary package
- Interactive Web Apps with shiny Cheat Sail
- Shiny User Showcase
Related
Posts
Source: https://tilburgsciencehub.com/building-blocks/collaborate-and-share-your-work/publish-on-the-web/shiny-apps/
0 Response to "How to Read Shiny Dropdown Input Values"
Post a Comment