Apps bouwen

Webapplicaties bouwen met Shiny in R

Kaelen Medeiros

Data Scientist

Verken levensverwachting vs. bbp per hoofd

Een app met een interactieve scatterplot van levensverwachting vs. bbp per hoofd voor een gekozen continent en jaar

Webapplicaties bouwen met Shiny in R

Verken levensverwachting vs. bbp per hoofd

Een app met een interactieve tabel van levensverwachting, bevolking en bbp per hoofd voor een gekozen continent en jaar

Webapplicaties bouwen met Shiny in R

Shiny-apps bouwen: 4 stappen

  1. Inputs toevoegen (UI)
  2. Outputs toevoegen (UI/Server)
  3. Lay-out bijwerken (UI)
  4. Outputs bijwerken (Server)
Webapplicaties bouwen met Shiny in R

Stap 1: Inputs toevoegen (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),

selectInput('continent', 'Select Continent', unique(gapminder$continent)),
sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5) )
server <- function(input, output, session){ } shinyApp(ui = ui, server = server)
Webapplicaties bouwen met Shiny in R

Een app met keuzes om een continent en jaar te selecteren

Webapplicaties bouwen met Shiny in R

Stap 2: Outputs toevoegen (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),
  selectInput('continent', 'Select Continent', unique(gapminder$continent)),
  sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5),

plotOutput('plot'), DT::DTOutput('table')
)
Webapplicaties bouwen met Shiny in R

Stap 2: Outputs toevoegen (Server)

server <- function(input, output, session){

output$plot <- renderPlot({ ggplot() })
output$table <- DT::renderDT({ gapminder })
}
Webapplicaties bouwen met Shiny in R

Een app met een lege plot en interactieve tabel plus keuzes voor continent en jaar

Webapplicaties bouwen met Shiny in R

Stap 3: Lay-out bijwerken (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),

sidebarLayout(
sidebarPanel( selectInput('continent', 'Select Continent', unique(gapminder$continent)), sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5) ),
mainPanel( plotOutput('plot'), DT::DTOutput('table') )
) )
Webapplicaties bouwen met Shiny in R

Stap 3: Lay-out bijwerken (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),

sidebarLayout(
sidebarPanel( selectInput('continent', 'Select Continent', unique(gapminder$continent)), sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5) ),
mainPanel( tabsetPanel( tabPanel("Plot", plotOutput('plot')), tabPanel("Table", DT::DTOutput('table')) ) )
) )
Webapplicaties bouwen met Shiny in R

Een app met een interactieve tabel van levensverwachting, bevolking en bbp per hoofd voor een gekozen continent en jaar

Webapplicaties bouwen met Shiny in R

Stap 4: Outputs bijwerken (Server)

server <- function(input, output, session){
  output$plot <- renderPlot({

data <- gapminder %>% filter(year == input$year) %>% filter(continent == input$continent) print(data) ggplot(data, aes(x = gdpPercap, y = lifeExp)) + geom_point()
}) output$table <- DT::renderDT({
gapminder %>% filter(year == input$year) %>% filter(continent == input$continent) })
}
Webapplicaties bouwen met Shiny in R

Een app met een interactieve scatterplot van levensverwachting vs. bbp per hoofd voor een gekozen continent en jaar, in een tab

Webapplicaties bouwen met Shiny in R

Laten we oefenen!

Webapplicaties bouwen met Shiny in R

Preparing Video For Download...