Criando apps

Construindo Aplicações Web com Shiny em R

Kaelen Medeiros

Data Scientist

Explore Expectativa de Vida vs. PIB per Capita

Um app exibindo um gráfico de dispersão interativo de expectativa de vida vs. PIB per capita para um continente e ano selecionados

Construindo Aplicações Web com Shiny em R

Explore Expectativa de Vida vs. PIB per Capita

Um app exibindo uma tabela interativa de expectativa de vida, população e PIB per capita para um continente e ano selecionados

Construindo Aplicações Web com Shiny em R

Criando apps Shiny: 4 etapas

  1. Adicionar entradas (UI)
  2. Adicionar saídas (UI/Server)
  3. Atualizar layout (UI)
  4. Atualizar saídas (Server)
Construindo Aplicações Web com Shiny em R

Etapa 1: Adicionar entradas (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)
Construindo Aplicações Web com Shiny em R

Um app exibindo controles para selecionar um continente e um ano

Construindo Aplicações Web com Shiny em R

Etapa 2: Adicionar saídas (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')
)
Construindo Aplicações Web com Shiny em R

Etapa 2: Adicionar saídas (Server)

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

output$plot <- renderPlot({ ggplot() })
output$table <- DT::renderDT({ gapminder })
}
Construindo Aplicações Web com Shiny em R

Um app exibindo um gráfico vazio e uma tabela interativa junto com controles para selecionar um continente e um ano

Construindo Aplicações Web com Shiny em R

Etapa 3: Atualizar layout (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') )
) )
Construindo Aplicações Web com Shiny em R

Etapa 3: Atualizar layout (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')) ) )
) )
Construindo Aplicações Web com Shiny em R

Um app exibindo uma tabela interativa de expectativa de vida, população e PIB per capita para um continente e ano selecionados

Construindo Aplicações Web com Shiny em R

Etapa 4: Atualizar saídas (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) })
}
Construindo Aplicações Web com Shiny em R

Um app exibindo um gráfico de dispersão interativo de expectativa de vida vs. PIB per capita para um continente e ano selecionados, em uma aba

Construindo Aplicações Web com Shiny em R

Vamos praticar!

Construindo Aplicações Web com Shiny em R

Preparing Video For Download...