Dades segons ABS i Regió

column

Total positius acumulats per ABS (intervals basats en algoritme de Jenks)

Positius diaris i acumulats

column

Acumulat PCR positius per Regió

Dades segons edat i sexe

Column

Evolutiu Catalunya (acumulat)

---
title: "Seguiment COVID-19 (proves):"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    source_code: embed
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

# Dades segons ABS i Regió

```{r, message=FALSE, warning=FALSE, comment="", results='hide'}
library(tidyverse)
library(data.table)
library(lubridate)
library(openxlsx)
library(crosstalk)
library(leaflet)
library(leaflet.extras)
library(rgdal)
library(sf)

dades = read.csv("https://analisi.transparenciacatalunya.cat/api/views/xuwf-dxjd/rows.csv?accessType=DOWNLOAD&sorting=true", encoding = "UTF-8")
SexeEDAT = fread("https://analisi.transparenciacatalunya.cat/api/views/qwj8-xpvk/rows.csv?accessType=DOWNLOAD&sorting=true", sep=",", encoding = "UTF-8")

dades = dades%>%
  mutate(Data=dmy(Data))%>%
  filter(Data%
  mutate(Data=dmy(Data))%>%
  filter(Data%
  group_by(Data, RegioSanitariaDescripcio)%>%
  summarise(IncidentsHomes = sum(NumCasos[SexeDescripcio=="Home" & ResultatCovidDescripcio=="Positiu"]),
            IncidentsDones = sum(NumCasos[SexeDescripcio=="Dona" & ResultatCovidDescripcio=="Positiu"]),
            IncidentsTotal = sum(NumCasos[ResultatCovidDescripcio=="Positiu"]),
            ProvesHomes = sum(NumCasos[SexeDescripcio=="Home"]),
            ProvesDones = sum(NumCasos[SexeDescripcio=="Dona"]),
            ProvesTotals = sum(NumCasos))%>%
  mutate(AcumulatPhomes = cumsum(IncidentsHomes),
         AcumulatPdones = cumsum(IncidentsDones),
         AcumulatP = cumsum(IncidentsTotal))

agregatTotal = dades%>%
  filter(Data%
  group_by(Data)%>%
  summarise(IncidentsHomes = sum(NumCasos[SexeDescripcio=="Home" & ResultatCovidDescripcio=="Positiu"]),
            IncidentsDones = sum(NumCasos[SexeDescripcio=="Dona" & ResultatCovidDescripcio=="Positiu"]),
            IncidentsTotal = sum(NumCasos[ResultatCovidDescripcio=="Positiu"]),
            ProvesHomes = sum(NumCasos[SexeDescripcio=="Home"]),
            ProvesDones = sum(NumCasos[SexeDescripcio=="Dona"]),
            ProvesTotals = sum(NumCasos))%>%
  mutate(AcumulatPhomes = cumsum(IncidentsHomes),
         AcumulatPdones = cumsum(IncidentsDones),
         AcumulatP = cumsum(IncidentsTotal),
         RegioSanitariaDescripcio = "Total")

DadesAgregatsFinal = agregatRS%>%
  bind_rows(agregatTotal)

shp_RS = readOGR("SHP/RS_final.shp", GDAL1_integer64_policy = TRUE, encoding = "UTF-8", use_iconv = T)
shp_ABS = readOGR("SHP/ABS_2018.shp", GDAL1_integer64_policy = TRUE, encoding = "UTF-8", use_iconv = T)
shp_RS=spTransform(shp_RS, CRS("+proj=longlat +datum=WGS84"))
shp_ABS=spTransform(shp_ABS, CRS("+proj=longlat +datum=WGS84"))
```

column {.sidebar data-width=250}
-------------------------------------

__INTRODUCCIÓ__

La següent pantalla busca elaborar un seguiment automatitzat dels resultats PCR (Polymerase Chain Reaction) de Catalunya i que es troben al repositori de dades obertes del portal Gencat. El document serveix de proves per, després, integrar les visualitzacions a la versió Shiny d'aquest _dashboard_.

Les dades reflecteixen els resultats de les proves PCR i, per tant, no s'ha de confondre mai amb els casos (nivell persona), ni haguts ni per haver.



__Fonts__

 Dades obertes COVID-19 

  Cartografia Mapa Sanitari 

 Població assegurada 2020 

__Enllaç al Shiny__

 Seguiment COVID-19 

__Dades disponibles fins:__

```{r}
datamax = dades%>%
  filter(Data < today())

print(max(datamax$Data))
```



column
-------------------------------------

### Total positius acumulats per ABS (intervals basats en algoritme de Jenks)

```{r}
ABS_positius = dades%>%
  filter(ResultatCovidDescripcio=="Positiu")%>%
  filter(Data%
  group_by(ABSCodi, ABSDescripcio)%>%
  summarise(Positius = sum(NumCasos))

ABS_positius$ABSCodi = formatC(ABS_positius$ABSCodi, width = 3, flag = "0")
```

```{r}
cp_bins <- function(.data, var, n = 5, style = "jenks", round = 0, dig = 10){
    
  # calculate breaks
  breaks <- classIntervals(.data[[var]], n = n, style = style)
  categories <- cut(.data[[var]], breaks = c(breaks$brks), include.lowest = TRUE, dig.lab = dig)
  
  # parse categories
  categories <- unique(categories)
  categories <- gsub("[][()]", "", categories)
  categories <- gsub(",", " ", categories)
  categories <- word(categories, 2)
  categories <- round(as.numeric(categories), digits = round)
  bins <- c(1, categories)
  
  # return output
  return(bins)
  
}
```


```{r}
library(classInt)

shpABS_positius = merge(shp_ABS, ABS_positius, by.y="ABSCodi", by.x="CODIABS")

bins <- cp_bins(ABS_positius, var = "Positius", n = 5)
bins = bins[!is.na(bins)]

pal <- colorBin(c("#baeaff", "#97b5f4", "#3d67e9", "#363ede", "#2f16d3"), domain = c(1:500), bins = bins)

leaflet()%>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addPolygons(data=shpABS_positius, fillOpacity  = 0.8, weight = 0.5, color = "white", fillColor = ~pal(Positius),
              popup = ~paste("ABS:: ",shpABS_positius$NOMABS,"
", "Regió Sanitaria: ", shpABS_positius$NOMRS, "
", "Positius acumulats: ", shpABS_positius$Positius) )%>% addPolygons(data=shp_RS, fillOpacity = 0, weight = 0.6, color = "black", fill=FALSE)%>% addLegend(pal = pal, values = shpABS_positius$Positius, opacity = .5, title = "Positius acumulats") ``` ### Positius diaris i acumulats ```{r} library(plotly) plot_ly(data = agregatTotal[agregatTotal$AcumulatP>0,], x=~Data, y=~AcumulatP, type="scatter", mode="lines", name="Acumulat", text = ~AcumulatP, mode="text", hovertemplate = paste('%{x}', "
Casos: ", '%{y}'))%>% add_trace(y = ~IncidentsTotal, type="bar", name="Proves positives", text = ~IncidentsTotal, mode="text", hovertemplate = paste('%{x}', "
Casos: ", '%{y}'), tickformat = "digit")%>% layout(yaxis = list(type = "log"), separators=".,")%>% layout(xaxis=list(title="Data"), yaxis=list(title="Resultats PCR (log)"))%>% layout(legend = list(x = 0.05, y = 0.9))%>% config(displayModeBar = F) ``` column {data-width=450} ------------------------------------- ### Acumulat PCR positius per Regió ```{r} poblacio = read.xlsx("Poblacio.xlsx") ``` ```{r} RS = agregatRS%>% group_by(RegioSanitariaDescripcio)%>% summarise(Acumulat = sum(IncidentsTotal))%>% mutate(Frequencia = round(Acumulat/sum(Acumulat)*100, 2))%>% left_join(poblacio, by=c("RegioSanitariaDescripcio" = "RS")) RS = RS%>% mutate(Taxa = round(( Acumulat/Poblacio )*100000, 2))%>% select(-Poblacio) library(DT) names(RS) = c("Regió", "Positius acumulats", "Freqüència", "Taxa bruta 100.000 hab.") datatable(RS, rownames = F, options = list(lengthChange=F,scrollX = T,searching = FALSE, initComplete = JS(" function(settings, json) { $(this.api().table().header()).css({ 'font-size': '13px', }); } "), columnDefs = list(list(className = 'dt-center', targets = 0:3))))%>% formatStyle(columns = colnames(.$x$data), `font-size` = "13px") ``` # Dades segons edat i sexe column {.sidebar data-width=250} ------------------------------------- __INTRODUCCIÓ__ La següent pantalla busca elaborar un seguiment automatitzat dels resultats PCR (Polymerase Chain Reaction) de Catalunya i que es troben al repositori de dades obertes del portal Gencat (Enllaç). Les dades reflecteixen els resultats de les proves PCR i, per tant, s'ha de tenir en compte que no reflecteixen exactament el nombre de casos (nivell persona) en actiu. __Fonts__ Dades obertes COVID-19 Cartografia Mapa Sanitari Població assegurada 2020 __Dades disponibles fins:__ ```{r} datamax = dades%>% filter(Data < today()) print(max(datamax$Data)) ``` Column {.tabset} ------------------------------------- ### Evolutiu Catalunya (acumulat) ```{r} SexeEDAT%>% filter(ResultatCovidDescripcio =="Positiu")%>% mutate(EdatRang = as.factor(EdatRang), SexeDescripcio=as.factor(SexeDescripcio))%>% group_by(Data, SexeDescripcio, EdatRang, .drop=FALSE )%>% summarise(Resultats = sum(NumCasos))%>% mutate(ID = paste0(SexeDescripcio, EdatRang))%>% ungroup()%>% mutate(Acumulat=ave(Resultats, ID, FUN=cumsum))%>% select(-ID, -Resultats)%>% mutate(Acumulat = ifelse(SexeDescripcio=="Home", Acumulat*-1, Acumulat))%>% filter(Data>=dmy("15032020"))%>% plot_ly(x = ~Acumulat, y = ~EdatRang, color = ~as.factor(SexeDescripcio), colors=c("blue", "green"), frame=~Data, type = 'bar', orientation = 'h', hovertemplate = "%{label}:
Positius acumulats: %{x}
")%>% layout(bargap = 0.05, barmode = "overlay", xaxis = list(tickmode = 'array'), paper_bgcolor='Transparent')%>% animation_slider(currentvalue = list(prefix = "Data ", font = list(color="black")) )%>% layout(xaxis=list(title="PCR positius acumulats"), yaxis=list(title="Grups d'Edat"))%>% config(displayModeBar = F) ```