Bouw een Shiny‑app om babynamen te verkennen

Webapplicaties bouwen met Shiny in R

Ramnath Vaidyanathan

VP of Product Research

Schets je app

Een schets van een app die een babynaam door de tijd toont

Webapplicaties bouwen met Shiny in R

Inputs toevoegen (UI)

ui <- fluidPage(

titlePanel("Baby Name Explorer"),
textInput('name', 'Enter Name', 'David')
)
server <- function(input, output, session){

}
shinyApp(ui = ui, server = server)

Een webapp met titel "Baby name explorer" en de naam "David" ingevuld

Webapplicaties bouwen met Shiny in R

Outputs toevoegen (UI/server)

ui <- fluidPage(
  titlePanel("Baby Name Explorer"),
  textInput('name', 'Enter Name', 'David'),

plotOutput('trend')
)
server <- function(input, output, session){

output$trend <- renderPlot({ ggplot() })
}
shinyApp(ui = ui, server = server)
Webapplicaties bouwen met Shiny in R

Outputs toevoegen (UI/server)

Een webapp met titel "Baby names explorer", de naam "David" ingevuld en een leeg plot

Webapplicaties bouwen met Shiny in R

Layout (UI) bijwerken

ui <- fluidPage(
  titlePanel("Baby Name Explorer"),

sidebarLayout(
sidebarPanel(
textInput('name', 'Enter Name', 'David')
),
mainPanel(
plotOutput('trend')
)
)
)
server <- function(input, output, session){
  output$trend <- renderPlot({ggplot()})
}
Webapplicaties bouwen met Shiny in R

Layout (UI) bijwerken

Een webapp met titel "Baby names explorer", de naam "David" ingevuld en een leeg plot. Naaminput links, leeg plot rechts

Webapplicaties bouwen met Shiny in R

Output (server) bijwerken

ui <- fluidPage(
  ...
)
server <- function(input, output, session){
  output$trend <- renderPlot({

data_name <- subset( babynames, name == input$name )
ggplot(data_name) + geom_line( aes(x = year, y = prop, color = sex) )
}) }

Een webapp met titel "Baby names explorer", de naam "David" ingevuld en een plot met de frequentie van de naam door de tijd. Naaminput links, plot rechts

Webapplicaties bouwen met Shiny in R

Laten we oefenen!

Webapplicaties bouwen met Shiny in R

Preparing Video For Download...