Casos

Column

Casos Diários

Casos Acumulados

Column

112.86

19/09/21

06/21

111

Informações

Mortalidade

Column

Mortes Diárias

Mortes Acumuladas

Column

4.16

09/04/21

04/21

111

Informações

Vacinação

Column

Vacinação da Cidade de Sorocaba - Gráfico

Tabela (População Feminina)

Vacinação da População Feminina de Sorocaba1
Fonte: Ministério da Saúde 2020 e basedosdados.org
% com 1ª dose aplicada % com 2ª dose aplicada
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0.1%
10-14 anos 56.7%
15-19 anos 98.4%
20-24 anos 107.6%
25-29 anos 104.5%
30-34 anos 103.4%
35-39 anos 89.6%
40-44 anos 100.7%
45-49 anos 102.6%
50-54 anos 100.8%
55-59 anos 102.6%
60-64 anos 106.9%
65-69 anos 106.8%
70-74 anos 107.6%
75-79 anos 103.2%
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0%
10-14 anos 31.9%
15-19 anos 66.4%
20-24 anos 90.1%
25-29 anos 92.7%
30-34 anos 92.1%
35-39 anos 101.1%
40-44 anos 102.2%
45-49 anos 101%
50-54 anos 110.3%
55-59 anos 120.1%
60-64 anos 106.3%
65-69 anos 115.3%
70-74 anos 108.2%
75-79 anos 104.6%

1 Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa

Tabela (População Masculina)

Vacinação da População Masculina de Sorocaba1
Fonte: Ministério da Saúde 2020 e basedosdados.org
% com 1ª dose aplicada % com 2ª dose aplicada
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0.1%
10-14 anos 55.6%
15-19 anos 92%
20-24 anos 98.5%
25-29 anos 100.5%
30-34 anos 98.5%
35-39 anos 83.7%
40-44 anos 96.5%
45-49 anos 99.2%
50-54 anos 99.5%
55-59 anos 99.8%
60-64 anos 103.7%
65-69 anos 104.3%
70-74 anos 108.1%
75-79 anos 103.3%
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0%
10-14 anos 30.5%
15-19 anos 59.2%
20-24 anos 76.2%
25-29 anos 83.1%
30-34 anos 81.3%
35-39 anos 93.3%
40-44 anos 93%
45-49 anos 93%
50-54 anos 103.5%
55-59 anos 114.6%
60-64 anos 102.1%
65-69 anos 113.4%
70-74 anos 108.6%
75-79 anos 106.2%

1 Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa

Tabela (População Geral)

Vacinação da População de Sorocaba1
Fonte: Ministério da Saúde 2020 e basedosdados.org
% com 1ª dose aplicada % com 2ª dose aplicada
Grupo Etário Porcentagem
0-4 anos 0.03%
5-9 anos 0.07%
10-14 anos 56.12%
15-19 anos 95.13%
20-24 anos 102.95%
25-29 anos 102.47%
30-34 anos 100.93%
35-39 anos 86.57%
40-44 anos 98.66%
45-49 anos 100.98%
50-54 anos 100.17%
55-59 anos 101.3%
60-64 anos 105.46%
65-69 anos 105.63%
70-74 anos 107.79%
75-79 anos 103.25%
Grupo Etário Porcentagem
0-4 anos 0.01%
5-9 anos 0.03%
10-14 anos 31.17%
15-19 anos 62.75%
20-24 anos 82.96%
25-29 anos 87.84%
30-34 anos 86.61%
35-39 anos 97.16%
40-44 anos 97.7%
45-49 anos 97.07%
50-54 anos 107.07%
55-59 anos 117.54%
60-64 anos 104.36%
65-69 anos 114.44%
70-74 anos 108.37%
75-79 anos 105.24%

1 Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa

Column

84.12%

78.69%

92.36%

85.9%

Informações

Glossário

Aqui estão presentes alguns termos e conceitos que podem não ser acessíveis para pessoas sem o hábito da leitura, criação e/ou interpretação de textos e relatórios estatísticos. Acha que faltam explicações? Envie um e-mail para sobre sua dúvida e, a depender do caso, ela será adicionada aqui!

Sobre

Atualizado pela última vez em 13/09/22 às 13:26 BRT.

Este é o dashboard “A COVID-19 em Sorocaba”. Ele é o resultado do Projeto de Extensão “Análise e Visualização dos Dados da Pandemia na Cidade de Sorocaba”, sob fomento da ProEx - Pró Reitoria de Extensão da UFSCar - Universidade Federal de São Carlos.

Ele é realizado por Victor Alves Dogo Martins (aluno do DEs - Departamento de Estatística da UFSCar - Campus São Carlos), sob orientação da Profa. Dra. Andreza Aparecida Palma (vinculada ao DEc - Departamento de Economia da UFSCar - Campus Sorocaba).

O objetivo deste projeto é fornecer um dashboard conciso e de fácil compreensão com dados relativos à pandemia da COVID-19 na cidade de Sorocaba - SP. Estes dados, ao longo do tempo, consistem em casos confirmados, mortes confirmadas e em esforços da campanha de vacinação na cidade.

Todos os dados, gráficos e formatação do dashboard são construídos com auxílio da linguagem de programação estatística R:

Quaisquer dúvidas, críticas, elogios e sugestões podem ser encaminhadas por e-mail para .

Você pode visualizar o repositório deste site em victordogo/covid19-sorocaba no GitHub.

OBS: POR CONTA DO APAGÃO DOS DADOS DO MINISTÉRIO DA SAÚDE, CERTAS INFORMAÇÕES CHEGAM COM ATRASO OU NÃO ESTÃO DISPONÍVEIS NO MOMENTO.

Referências:

COVID-19 - Datasets - Brasil.IO. Disponível em: <https://brasil.io/dataset/covid19/caso_full/>. Acesso em: 16 dez. 2021.
CAVALCANTE, Pedro. basedosdados: ’Base Dos DadosR Client. [s.l.: s.n.], 2021. Disponível em: <https://CRAN.R-project.org/package=basedosdados>.
CHAVES, Luis. Automating a COVID19 report update and publishing with GitHub Actions. Disponível em: <https://towardsdatascience.com/automating-a-covid19-report-update-and-publishing-with-github-actions-a3d64315e515>. Acesso em: 16 dez. 2021.
IANNONE, Richard; ALLAIRE, J. J. ; BORGES, Barbara. flexdashboard: R Markdown Format for Flexible Dashboards. [s.l.: s.n.], 2020. Disponível em: <https://CRAN.R-project.org/package=flexdashboard>.
KRISPIN, Rami. Deploying flexdashboard on Github Pages \textbar R-bloggers. Disponível em: <https://www.r-bloggers.com/2020/09/deploying-flexdashboard-on-github-pages/>. Acesso em: 16 dez. 2021.
MIOTO, Bruno. Analisando dados de vacinação contra COVID-19 com a BD. Disponível em: <https://medium.com/basedosdados/analisando-dados-de-vacina%C3%A7%C3%A3o-contra-covid-19-com-a-bd-49fe3db8c7f4>. Acesso em: 16 dez. 2021.
SIEVERT, Carson. Interactive Web-Based Data Visualization with R, plotly, and shiny. [s.l.]: Chapman; Hall/CRC, 2020. Disponível em: <https://plotly-r.com>.
WICKHAM, Hadley. ggplot2: Elegant Graphics for Data Analysis. [s.l.]: Springer-Verlag New York, 2016. Disponível em: <https://ggplot2.tidyverse.org>.
WICKHAM, Hadley. tidyr: Tidy Messy Data. [s.l.: s.n.], 2021. Disponível em: <https://CRAN.R-project.org/package=tidyr>.
WICKHAM, Hadley; AVERICK, Mara; BRYAN, Jennifer; et al. Welcome to the tidyverse. Journal of Open Source Software, v. 4, n. 43, p. 1686, 2019.
WICKHAM, Hadley; FRANÇOIS, Romain; HENRY, Lionel; et al. dplyr: A Grammar of Data Manipulation. [s.l.: s.n.], 2021. Disponível em: <https://CRAN.R-project.org/package=dplyr>.
---
title: "A COVID-19 em Sorocaba"
bibliography: refs/ref.bib
csl: refs/abnt.csl
nocite: '@*'
output: 
  flexdashboard::flex_dashboard:
    logo: images/logo-proex-ufscar.png
    favicon: images/icon.png
    source_code: embed
    orientation: columns
    vertical_layout: fill
---



```{r setup, include=FALSE}
library(flexdashboard)

# Lendo dados

covid_sorocaba <- readr::read_rds("data/covid_sorocaba.rds")
covid_sp <- readr::read_rds("data/covid_sp.rds")
vacina_scb <- readr::read_rds("data/vacina_scb.rds")

# Icones de apresentacao 

htmltools::tagList(fontawesome::fa_html_dependency())

```

```{css info-style, echo = FALSE}
  .chart-shim {
    overflow-y: scroll;
    }
```

Casos
================================================================

Column {.tabset}
-------------------------------------

### Casos Diários

```{r}

# Casos Diários de sorocaba com media movel de 7 e 14 dias

casos_diarios <- covid_sorocaba |>
  dplyr::rename(`Dia`=date,
                `Casos Diários`=new_confirmed) |>
  dplyr::mutate(
    `Média Móvel - 7 dias`=zoo::rollmean(`Casos Diários`,k=7,na.pad = TRUE),
    `Média Móvel - 14 dias`=zoo::rollmean(`Casos Diários`,k=14,na.pad = TRUE)
    ) |>
  ggplot2::ggplot(ggplot2::aes(y=`Casos Diários`,x=`Dia`))+
  ggplot2::geom_line(ggplot2::aes(fill="Casos Diários"),alpha=0.3)+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 7 dias`,
                 fill="Média Móvel - 7 dias"),
    color="red")+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 14 dias`,
                 fill="Média Móvel - 14 dias"),
    color="blue")+
  ggplot2::labs(
    title="Casos Diários na cidade de Sorocaba \ndevido à COVID-19"
    )+
  ggplot2::scale_y_continuous(breaks = seq(0,1000,100))+
  ggplot2::theme_minimal()

casos_diarios |> plotly::ggplotly()

```

### Casos Acumulados

```{r}

# Casos Acumulados de sorocaba comparada com cidades da regiao

casos_acumulados <- covid_sp |>
  dplyr::group_by(city) |>
  dplyr::rename(`Dia`=date,
                `Total de Casos`=last_available_confirmed,
                `Cidade`=city) |>
  ggplot2::ggplot(ggplot2::aes(y=`Total de Casos`,x=`Dia`,
                               color=`Cidade`))+
  ggplot2::geom_line()+
  ggplot2::labs(
    title="Casos Acumulados na cidade de Sorocaba \ncomparada com outras cidades"
  )+
  ggplot2::theme_minimal()

casos_acumulados |> plotly::ggplotly()

```

Column {data-width=150}
-------------------------------------

###

```{r}

# Casos por mil habitantes

((max(covid_sorocaba$last_available_confirmed)/687357)*1000)  |>
  round(digits=2) |> 
  flexdashboard::valueBox(
    caption="casos por mil habitantes",
    icon="fas fa-viruses"
  )

```

###

```{r}
# Data com mais casos

covid_sorocaba |> 
  dplyr::filter(
    new_confirmed==max(covid_sorocaba$new_confirmed)
  ) |> 
  dplyr::select(date) |>
  dplyr::pull() |> 
  format("%d/%m/%y") |> 
  flexdashboard::valueBox(
    caption="data com maior número de casos",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Mês com mais casos

covid_sorocaba |> 
  dplyr::mutate(
    month=lubridate::floor_date(date, "month")
  )|>
  dplyr::group_by(month) |> 
  dplyr::summarise(
    total_cases=sum(new_confirmed)
  ) |> 
  dplyr::filter(
    total_cases==max(total_cases)
  ) |> 
  dplyr::select(month) |>
  dplyr::pull() |> 
  format("%m/%y") |> 
  flexdashboard::valueBox(
    caption="mês com maior número de casos",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Dias consecutivos sem diagnósticos

dias_consec_casos <- covid_sorocaba |> 
  dplyr::mutate(
    Contagem= stats::ave(new_confirmed, 
                         data.table::rleid(new_confirmed), FUN=seq_along)
  ) |>
  dplyr::filter(
    new_confirmed==0
  ) |> 
  dplyr::select(Contagem)

dias_consec_casos |> 
  dplyr::slice_tail() |> 
  dplyr::pull() |> 
  flexdashboard::valueBox(
    caption="dias consecutivos sem casos",
    icon= "fas fa-check-circle",
    color="success"
  )

```

### Informações

* Os dados referentes aos contágios foram retirados do site [brasil.io](https://brasil.io/dataset/covid19/). Para mais informações sobre a manipulação deles, acesse o [repositório do dashboard no github](https://github.com/victordogo/covid19-sorocaba/tree/master/data-raw);
* Alguma dúvida? Envie um e-mail para victordogo@gmail.com ou acesse a aba ["Glossário"](#glossário);
* **Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**

Mortalidade
================================================================

Column {.tabset}
-------------------------------------

### Mortes Diárias

```{r}

# Mortes diarias de sorocaba com media movel de 7 e 14 dias

mortes_diarias <- covid_sorocaba |>
  dplyr::rename(`Dia`=date,
                `Mortes Diárias`=new_deaths) |>
  dplyr::mutate(
    `Média Móvel - 7 dias`=zoo::rollmean(`Mortes Diárias`,k=7,na.pad = TRUE),
    `Média Móvel - 14 dias`=zoo::rollmean(`Mortes Diárias`,k=14,na.pad = TRUE)
    ) |>
  ggplot2::ggplot(ggplot2::aes(y=`Mortes Diárias`,x=`Dia`))+
  ggplot2::geom_line(ggplot2::aes(fill="Mortes Diárias"),alpha=0.3)+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 7 dias`,
                 fill="Média Móvel - 7 dias"),
    color="red")+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 14 dias`,
                 fill="Média Móvel - 14 dias"),
    color="blue")+
  ggplot2::labs(
    title="Mortes Diárias na cidade de Sorocaba \ncausadas pela COVID-19"
    )+
  ggplot2::scale_y_continuous(breaks = seq(0,85,5))+
  ggplot2::theme_minimal()

mortes_diarias |> plotly::ggplotly()

```

### Mortes Acumuladas

```{r}

# Mortes acumuladas de sorocaba comparada com cidades da regiao

mortes_acumuladas <- covid_sp |>
  dplyr::group_by(city) |>
  dplyr::rename(`Dia`=date,
                `Total de Mortes`=last_available_deaths,
                `Cidade`=city) |>
  ggplot2::ggplot(ggplot2::aes(y=`Total de Mortes`,x=`Dia`,
                               color=`Cidade`))+
  ggplot2::geom_line()+
  ggplot2::labs(
    title="Mortes Acumuladas na cidade de Sorocaba \ncomparada com outras cidades"
  )+
  ggplot2::theme_minimal()

mortes_acumuladas |> plotly::ggplotly()

```

Column {data-width=150}
-------------------------------------

###

```{r}

# Mortes por mil habitantes

((max(covid_sorocaba$last_available_deaths)/687357)*1000)  |>
  round(digits=2) |> 
  flexdashboard::valueBox(
    caption="mortes por mil habitantes",
    icon="fas fa-viruses"
  )

```

###

```{r}
# Data com mais mortes

covid_sorocaba |> 
  dplyr::filter(
    new_deaths==max(covid_sorocaba$new_deaths)
  ) |> 
  dplyr::select(date) |>
  dplyr::pull() |> 
  format("%d/%m/%y") |> 
  flexdashboard::valueBox(
    caption="data com maior número de mortes",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Mês com mais mortes

covid_sorocaba |> 
  dplyr::mutate(
    month=lubridate::floor_date(date, "month")
  )|>
  dplyr::group_by(month) |> 
  dplyr::summarise(
    total_deaths=sum(new_deaths)
  ) |> 
  dplyr::filter(
    total_deaths==max(total_deaths)
  ) |> 
  dplyr::select(month) |>
  dplyr::pull() |> 
  format("%m/%y") |> 
  flexdashboard::valueBox(
    caption="mês com maior número de mortes",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Dias consecutivos sem mortes

dias_consec_deaths <- covid_sorocaba |> 
  dplyr::mutate(
    Contagem= stats::ave(new_deaths, 
                         data.table::rleid(new_deaths), FUN=seq_along)
  ) |>
  dplyr::filter(
    new_deaths==0
  ) |> 
  dplyr::select(Contagem)

dias_consec_deaths |> 
  dplyr::slice_tail() |> 
  dplyr::pull() |> 
  flexdashboard::valueBox(
    caption="dias consecutivos sem mortes",
    icon= "fas fa-check-circle",
    color="success"
  )

```

### Informações

* Os dados referentes à mortalidade foram retirados do site [brasil.io](https://brasil.io/dataset/covid19/). Para mais informações sobre a manipulação deles, acesse o [repositório do dashboard no github](https://github.com/victordogo/covid19-sorocaba/tree/master/data-raw);
* Alguma dúvida? Envie um e-mail para victordogo@gmail.com ou acesse a aba ["Glossário"](#glossário);
* **Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**


Vacinação
================================================================

Column {.tabset}
-------------------------------------

### Vacinação da Cidade de Sorocaba - Gráfico

```{r}
# Vacinação na cidade de sorocaba

cores <- c("População estimada (Masculino)" = "#ffc3a4",
           "1ª Dose (M)" = "#EE5A45",
           "2ª Dose ou Única (M)" = "#790000",
           "População estimada (Feminino)" = "#7bd1cb",
           "1ª Dose (F)" = "#1E8F89",
           "2ª Dose ou Única (F)" = "#00322f")

grafico_vacinacao <- vacina_scb |>
  ggplot2::ggplot(ggplot2::aes(x = grupo_idade, y=n_grafico))+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "F",] |>
                      dplyr::distinct(populacao_grafico, .keep_all = TRUE),
                    ggplot2::aes(x = grupo_idade,
                                 y = populacao_grafico,
                                 fill = "População estimada (Feminino)"),
                    stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "M",] |>
                      dplyr::distinct(populacao_grafico, .keep_all = TRUE),
                    ggplot2::aes(x = grupo_idade,
                                 y = populacao_grafico,
                                 fill = "População estimada (Masculino)"),
                    stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "F",] |>
             dplyr::filter(dose_vacina == '1'),
             ggplot2::aes(fill = "1ª Dose (F)"),
             stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "M",] |>
                      dplyr::filter(dose_vacina == '1'),
                      ggplot2::aes(fill = "1ª Dose (M)"),
                      stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "F",] |>
                      dplyr::filter(dose_vacina == '2'),
                    ggplot2::aes(fill = "2ª Dose ou Única (F)"),
                    stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "M",] |>
                      dplyr::filter(dose_vacina == '2'),
                    ggplot2::aes(fill = "2ª Dose ou Única (M)"),
                    stat = "identity")+
  ggplot2::annotate("text",
            x="0-4 anos", y=5000,
            label = "Feminino",
            hjust = 0,
            fontface = "bold"
  )+
   ggplot2::annotate("text",
            x="0-4 anos", y=-5000,
            label = "Masculino",
            hjust = 1,
            fontface = "bold"
  )+
  ggplot2::labs(x="Faixa Etária",y="Vacinados",
                title="Vacinação na cidade de Sorocaba")+
  ggplot2::scale_y_continuous(
    breaks=c(-30000,-25000,-20000, -15000, -10000, -5000, 0,
             5000, 10000, 15000, 20000, 25000, 30000),
    labels = c(
      "-30000"="30.000",
      "-25000"="",
      "-20000"="20.000",
      "-15000"="",
      "-10000"="10.000",
      "-5000"="",
      "0"="0",
      "5000"="",
      "10000"="10.000",
      "15000"="",
      "20000"="20.000",
      "25000"="",
      "30000"="30.000"
    )
  )+
  ggplot2::scale_fill_manual(values = cores,
                             limits = c("População estimada (Masculino)",
                                        "1ª Dose (M)",
                                        "2ª Dose ou Única (M)",
                                        "2ª Dose ou Única (F)",
                                        "1ª Dose (F)",
                                        "População estimada (Feminino)"))+
  ggplot2::guides(fill=ggplot2::guide_legend(nrow=1,byrow=TRUE))+
  ggplot2::theme_minimal()+
  ggplot2::theme(
    plot.title = ggplot2::element_text(hjust = 0.5, size = 16),
    plot.subtitle = ggplot2::element_text(hjust = 0.5),
    axis.text = ggplot2::element_text(size = 12),
    axis.title = ggplot2::element_text(size = 12),
    plot.background = ggplot2::element_rect(fill = "white", color = "white")
  )+
  ggplot2::coord_flip()

grafico_vacinacao |> plotly::ggplotly()

```

### Tabela (População Feminina)

```{r}
# Apresentando porcentagems divididas por faixa etaria em tabela
# (pop. feminina)

# Tabela da primeira dose

primeira_dose_f <- vacina_scb |> 
  dplyr::filter(dose_vacina==1,
                sexo=="F") |>
  tidyr::drop_na() |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Tabela da segunda dose

segunda_dose_f <- vacina_scb |> 
  dplyr::filter(dose_vacina==2,
                sexo=="F") |>
  tidyr::drop_na() |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Apresentando as duas tabelas

data.frame(primeira_dose_f,segunda_dose_f) |> 
  gt::gt() |> 
  gt::fmt_markdown(columns=dplyr::everything()) |> 
  gt::cols_label(primeira_dose_f="% com 1ª dose aplicada",
                 segunda_dose_f="% com 2ª dose aplicada") |>
  gt::tab_footnote("Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa",
                   locations = gt::cells_title()) |> 
  gt::tab_header(
    title=gt::md("**Vacinação da População Feminina de Sorocaba**"),
    subtitle=gt::md("Fonte: Ministério da Saúde 2020 e basedosdados.org")
  )

```

### Tabela (População Masculina)

```{r}
# Apresentando porcentagems divididas por faixa etaria em tabela
# (pop. masculina)

# Tabela da primeira dose

primeira_dose_m <- vacina_scb |> 
  dplyr::filter(dose_vacina==1,
                sexo=="M") |>
  tidyr::drop_na() |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Tabela da segunda dose

segunda_dose_m <- vacina_scb |> 
  dplyr::filter(dose_vacina==2,
                sexo=="M") |>
  tidyr::drop_na() |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |>
  gt::gt() |> 
  gt::as_raw_html()

# Apresentando as duas tabelas

data.frame(primeira_dose_m,segunda_dose_m) |> 
  gt::gt() |> 
  gt::fmt_markdown(columns=dplyr::everything()) |> 
  gt::cols_label(primeira_dose_m="% com 1ª dose aplicada",
                 segunda_dose_m="% com 2ª dose aplicada") |>
  gt::tab_footnote("Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa",
                   locations = gt::cells_title()) |> 
  gt::tab_header(
    title=gt::md("**Vacinação da População Masculina de Sorocaba**"),
    subtitle=gt::md("Fonte: Ministério da Saúde 2020 e basedosdados.org")
  )

```

### Tabela (População Geral)

```{r}
# Apresentando porcentagems divididas por faixa etaria em tabela
# (pop. geral)

# Tabela da primeira dose

primeira_dose <- vacina_scb |> 
  dplyr::filter(dose_vacina==1) |>
  tidyr::drop_na() |> 
  dplyr::group_by(grupo_idade) |>
  dplyr::summarise(populacao=sum(populacao),
                   n=sum(n),
                   porc=round(n/populacao * 100,digits=2)) |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Tabela da segunda dose

segunda_dose <- vacina_scb |> 
  dplyr::filter(dose_vacina==2) |>
  tidyr::drop_na() |> 
  dplyr::group_by(grupo_idade) |>
  dplyr::summarise(populacao=sum(populacao),
                   n=sum(n),
                   porc=round(n/populacao * 100,digits=2)) |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Apresentando as duas tabelas

data.frame(primeira_dose,segunda_dose) |> 
  gt::gt() |> 
  gt::fmt_markdown(columns=dplyr::everything()) |> 
  gt::cols_label(primeira_dose="% com 1ª dose aplicada",
                 segunda_dose="% com 2ª dose aplicada") |>
  gt::tab_footnote("Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa",
                   locations = gt::cells_title()) |> 
  gt::tab_header(
    title=gt::md("**Vacinação da População de Sorocaba**"),
    subtitle=gt::md("Fonte: Ministério da Saúde 2020 e basedosdados.org")
  )

```


Column {data-width=150}
-------------------------------------

###

```{r}
# Porcentagem da população com 1 dose

vacina_scb |>
  tidyr::drop_na() |> 
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==1) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população com a 1ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

###

```{r}
# Porcentagem da população com 2 dose

vacina_scb |>
  tidyr::drop_na() |> 
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==2) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população com a 2ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

###

```{r}
# Porcentagem de +15 anos com 1 dose

vacina_scb[-c(1:7),] |>
  tidyr::drop_na() |> 
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==1) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população acima de 15 anos com a 1ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

###

```{r}
# Porcentagem de +15 anos com 1 dose

vacina_scb[-c(1:7),] |>
  tidyr::drop_na() |> 
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==2) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população acima de 15 anos com a 2ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

### Informações

* Os dados referentes à vacinação foram retirados do site [basedosdados.org](https://basedosdados.org/dataset/br-ms-vacinacao-covid19). Para mais informações sobre a manipulação deles, acesse o [repositório do dashboard no github](https://github.com/victordogo/covid19-sorocaba/tree/master/data-raw);
* O gráfico de vacinação foi inspirado no trabalho de Bruno Mioto no [seguinte post;](https://medium.com/basedosdados/analisando-dados-de-vacina%C3%A7%C3%A3o-contra-covid-19-com-a-bd-49fe3db8c7f4)
* Alguma dúvida? Envie um e-mail para victordogo@gmail.com ou acesse a aba ["Glossário"](#glossário);
* **Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**

Glossário
======================================================

Aqui estão presentes alguns termos e conceitos que podem não ser acessíveis para pessoas sem o hábito da leitura, criação e/ou interpretação de textos e relatórios estatísticos. Acha que faltam explicações? Envie um e-mail para victordogo@gmail.com sobre sua dúvida e, a depender do caso, ela será adicionada aqui!

* **Casos ou Mortes Diárias:** são o número de casos diagnosticados ou de mortes ocorridas **única e exclusivamente** num determinado dia;
* **Casos ou Mortes Acumuladas:** são o número de casos diagnosticados ou de mortes ocorridas **até** um determinado dia. Exemplificando, se no dia 1 temos 3 mortes diárias, no dia 2 temos 7 mortes diárias e no dia 3 temos 5 mortes diárias, o número de mortes acumuladas do dia 3 é $3+7+5 = 15$ mortes;
* **Estimativa Populacional:** temos no Brasil que os Censos Demográficos ocorrem (pelo menos em teoria) a cada 10 anos. No entanto, é de interesse de entidades governamentais terem uma ideia do tamanho da população no período entre censos também: para isso, instituições como o IBGE utilizam técnicas para **estimar** o tamanho da população. Não é o valor exato da população, mas uma aproximação satisfatória o bastante para que norteie políticas públicas e outras questões;
* **Médias Móveis:** são uma maneira de suavizar a curva de um determinado banco de dados para que possamos analisar a tendência dos valores observados sem que as variações atrapalhem a análise. São calculadas de acordo com uma ordem $k$ (em nosso caso, utilzamos $k$ = 7 e 14 dias): faz-se a média aritmética simples de valores no ponto $t$ e todos os $t-(k-1)$ pontos anteriores. Se a linha das médias móveis está em queda, então existem indícios de que a variável em questão (mortes ou casos diários) está em queda também;
* **Ocorrências a cada mil habitantes:** é um indicador bastante útil para termos ideia do quão boa ou ruim é a situação da cidade. Exemplificando, pensemos numa cidade que possui 10 mortes para cada mil habitantes: se dividirmos por dez, temos 1 morte para cada cem habitantes (ou 1% de mortes proporcionais à população); se dividirmos por cem, temos que, para cada dez pessoas, 0.1 morrem devido à doença (obviamente para fins de análise: não é possível que um décimo de pessoa morra!).


Sobre
======================================================

**Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**

Este é o dashboard "A COVID-19 em Sorocaba". Ele é o resultado do Projeto de Extensão  "Análise e Visualização dos Dados da Pandemia na Cidade de Sorocaba", sob fomento da ProEx - Pró Reitoria de Extensão da UFSCar - Universidade Federal de São Carlos.

Ele é realizado por Victor Alves Dogo Martins (aluno do DEs - Departamento de Estatística da UFSCar - Campus São Carlos), sob orientação da Profa. Dra. Andreza Aparecida Palma (vinculada ao DEc - Departamento de Economia da UFSCar - Campus Sorocaba). 

O objetivo deste projeto é fornecer um dashboard conciso e de fácil compreensão com dados relativos à pandemia da COVID-19 na cidade de Sorocaba - SP. Estes dados, ao longo do tempo, consistem em casos confirmados, mortes confirmadas e em esforços da campanha de vacinação na cidade.

Todos os dados, gráficos e formatação do dashboard são construídos com auxílio da linguagem de programação estatística R:

* O dashboard é construído com o auxílio do pacote [`{flexdashboard}`](https://pkgs.rstudio.com/flexdashboard/);
* Os dados são tratados com auxílio dos pacotes do [tidyverse](https://www.tidyverse.org/);
* Os gráficos são produzidos, em suas versões estáticas, com auxílio do pacote [`{ggplot2}`](https://ggplot2.tidyverse.org/). Depois, são transformados em versões interativas com auxílio do pacote [`{plotly}`](https://plotly.com/r/);
* O site é publicado com auxílio do GitHub Pages, com automatização da leitura e tratamento diário das bases de dados através do GitHub Actions;
* As bases de dados são retiradas dos sites brasil.io (no caso de dados relativos a casos e mortes) e basedosdados.org (no caso de dados da vacinação). Os dados em si não são criados por eles, mas eles constituem uma **importante parte deste trabalho** devido ao fato de disponibilizarem diversas bases ora bagunçadas e difíceis de trabalhar em formatos muito mais amigáveis e que agilizam o processo de análise;
* **Próximos passos:** o intuito futuro deste site é ser atualizado automaticamente através de ferramentas de integração contínua (como o GitHub Actions).


Quaisquer dúvidas, críticas, elogios e sugestões podem ser encaminhadas por e-mail para victordogo@gmail.com .


Você pode visualizar o repositório deste site em [victordogo/covid19-sorocaba](https://github.com/victordogo/covid19-sorocaba) no GitHub.

**OBS: POR CONTA DO APAGÃO DOS DADOS DO MINISTÉRIO DA SAÚDE, CERTAS INFORMAÇÕES CHEGAM COM ATRASO OU NÃO ESTÃO DISPONÍVEIS NO MOMENTO.**

**Referências:**