Visualization

Row

days: ShelterInPlace

59

Confirmed New

115

Confirmed | Death (Total)

4396 | 87

ICU OccupiedRate

In ICU Currently

103

Hospitalized Rate

5.7 %

Fatality Rate

2 %

Row

Cumulative Cases

Trend

Row

Positive Rate by Race

Death Rate VS Population Rate By Race

Cumulative Cases By Age

Map

CasesInCites

DataTable

Resources

Row 2

Resources

Data

Row

Data Set From Link
Covid19 in Counties,CA The California Health and Human Services Agency (CHHS) https://data.chhs.ca.gov/dataset/6882c390-b2d7-4b9a-aefa-2068cee63e47/resource/6cd8d424-dfaa-4bdd-9410-a3d656e1176e/download/covid19data.csv
Covid19 in Age,Orange OCgov.com https://occovid19.ochealthinfo.com/coronavirus-in-oc
Covid19 in Cities,Orange OCgov.com https://occovid19.ochealthinfo.com/coronavirus-in-oc
Covid19 Race and Ethnicity Data California Department of Health https://www.cdph.ca.gov/Programs/CID/DCDC/Pages/COVID-19/Race-Ethnicity.aspx#

About

        CP101 
        
        Instructor: Karen Chapple
        
        GSI: Manuel Santana Palacios
       
        Created by: Huiqing Fu 
        
        Spring 2020
        
        05/16/2020
        
        UC Berkeley
---
title: "OrangeCounty Covid19 DashBoard"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    social: ["twitter","facebook","menu","email"]
    source_code: embed
    storyboard: true
---

```{r setup, include=FALSE}
library(flexdashboard)
library(knitr)
library(DT)
library(rpivotTable)
library(ggplot2)
library(plotly)
library(dplyr)
library(openintro)
library(highcharter)
library(ggvis)
library(data.table)
library(widgetframe)
library(leaflet)
library(tidyverse)
library(ggmap)
library(leaflet.extras)
library(htmltools)
library(maps)
library(mapproj)
library(mapdata)
```




```{r}
#icon https://www.w3schools.com/icons/fontawesome5_icons_medical.asp
```

```{r}
data <- read.csv("~/Documents/CP101/4Assignment/Assignment 3/dashboard/VehicleFailure.csv")

#data from chhs
data2<-read.csv('https://data.chhs.ca.gov/dataset/6882c390-b2d7-4b9a-aefa-2068cee63e47/resource/6cd8d424-dfaa-4bdd-9410-a3d656e1176e/download/covid19data.csv')
```





```{r}
#subset data: County.Name=="Orange"
data2_Orange <-subset(data2, County.Name=="Orange")

#indicators in dashboard
total_Confirmed <-tail(data2_Orange,1)[1,3]
total_Death <- tail(data2_Orange,1)[1,4]
ICU_Rate <- (tail(data2_Orange,1)[1,7]+tail(data2_Orange,1)[1,8]+495)/673
today_Confirmed <-tail(data2_Orange,1)[1,3]-tail(data2_Orange,2)[1,3]
fatality_rate <- tail(data2_Orange,1)[1,4]/tail(data2_Orange,1)[1,3]
InICUCurrent<-tail(data2_Orange,1)[1,7]
hospitalizedRate<-tail(data2_Orange,1)[1,5]/tail(data2_Orange,1)[1,3]
```

```{r}
mycolors <- c("blue", "#FFC125", "darkgreen","darkorange","blue", "#FFC125", "darkgreen","darkorange")
```

Visualization
======================================================================

Row
----------------------------------------------------------------------

### days: ShelterInPlace

```{r}
today <-Sys.Date()
stay_at_home_Starts <- as.Date("2020-03-19")
stay_at_home_Total=today-stay_at_home_Starts
valueBox(paste(today-stay_at_home_Starts),
         icon=("fa-clock"),
         color="warning")
```

### Confirmed New
```{r}
#("primary", "info", "success", "warning", "danger")
valueBox(today_Confirmed,
         color="info",
         icon="fa-user")
```

### Confirmed | Death (Total)

```{r}
#https://www.w3schools.com/icons/fontawesome5_icons_communication.asp
valueBox(paste(total_Confirmed,"|",total_Death),
         color="danger",
         icon="fa-bell")
```

### **ICU OccupiedRate** 

```{r}
gauge(round(ICU_Rate,
            digits = 2),
            min=0,
            max=1,
            gaugeSectors(success = c(0,0.70),
                         warning=c(0.70,0.9),
                         danger = c(0.9,1),
                         colors=c("green","orange","red")))
```

### In ICU Currently
```{r}
valueBox(InICUCurrent,
         icon="fa-heartbeat")
```

### Hospitalized Rate
```{r}
valueBox(paste(round(hospitalizedRate*100, digits =1),"%"),
         icon="fa-building")
```

### Fatality Rate
```{r}
valueBox(paste(round(fatality_rate*100, digits =1),"%"), 
         icon="fa-tag")
```


Row
--------------------------------------

### Cumulative Cases

```{r}
#######Data Preparation
# newcCasesDaily: daily increasing. newcCasesAccelerate:the accelerate of new cases increasing
data3_Orange <-data2_Orange
data3_Orange$Total.Count.Confirmed2<-data3_Orange$Total.Count.Confirmed

#shife down one line:transform
temp1<- data3_Orange$Total.Count.Confirmed2
data3_Orange <- transform(data3_Orange, temp1 = c(0, temp1[-nrow(data3_Orange)]))
data3_Orange$newcCasesDaily<-data3_Orange$Total.Count.Confirmed2-data3_Orange$temp1
data3_Orange$newcCasesDaily[1]<-0

#shife down one line:transform
temp2<- data3_Orange$newcCasesDaily
data3_Orange <- transform(data3_Orange, temp2 = c(0, temp2[-nrow(data3_Orange)]))
data3_Orange$newcCasesAccelerate<-data3_Orange$newcCasesDaily-data3_Orange$temp2
```


```{r}
#culmulative
fig <- plot_ly(x=factor(data3_Orange$Most.Recent.Date,levels=data2_Orange$Most.Recent.Date), y=data3_Orange$Total.Count.Confirmed,
                type = 'bar', 
                color=rainbow(length(data3_Orange$Most.Recent.Date)),
                name='Cumulative'
               
                ) %>%
  layout(xaxis = list(title = "date"),
         yaxis = list(title = "Count: Cumulative Cases"))

fig <- fig %>% layout(showlegend = FALSE)

fig

```


### Trend
```{r}
#new cases
fig2 <- plot_ly(x=factor(data3_Orange$Most.Recent.Date,levels=data2_Orange$Most.Recent.Date), y=data3_Orange$newcCasesDaily,
                type = 'scatter', 
                mode = 'lines',
                name='New'
                ) %>%
  layout(xaxis = list(title = "date"),
         yaxis = list(title = "Count"))
  

#accelerate
fig2<-fig2 %>%
  add_trace(y=data3_Orange$newcCasesAccelerate,
                type = 'scatter', 
                mode = 'lines',
                name='Accelerated'
                ) 
fig2
```

```{r}
#failure month vs Mileage
p3 <- plot_ly(data,
              x = ~fm,
              y= ~Mileage,
              text = paste("FM:", data$fm,
                           "Mileage:",
                           data$Mileage),
              type = "bar") %>%
        layout(xaxis = list(title = "FM"),
               yaxis = list(title = "Failure Mileage"))
  
  
p3
```

Row
-------------------------
### Positive Rate by Race
```{r}
#Data scraping
library(XML)
library(RCurl)
library(rlist)
theurl <- getURL("https://www.cdph.ca.gov/Programs/CID/DCDC/Pages/COVID-19/Race-Ethnicity.aspx",.opts = list(ssl.verifypeer = FALSE) )
tables <- readHTMLTable(theurl,header=TRUE,stringsAsFactors = FALSE)
tables <- list.clean(tables, fun = is.null, recursive = FALSE)
```


```{r}
# pick table
raceDeath<-tables[[1]]

#change column names
names(raceDeath)[1] <- "Race"
names(raceDeath)[2] <- "No_Cases"
names(raceDeath)[3] <- "Percent_Cases"
names(raceDeath)[4] <- "No_Deaths"
names(raceDeath)[5] <- "Percent_Deaths"
names(raceDeath)[6] <- "Percent_CA_Population"

#change row names
#rownames(raceDeath)[rownames(raceDeath) == "Merc 280"] <- "Native"

#delete last row
raceDeath<- raceDeath[-nrow(raceDeath),]

#Function: replacec comma
replaceCommas<-function(x){
  x<-as.numeric(gsub("\\,", "", x))
}

#remove Delimiter
raceDeath$No_Cases <- replaceCommas(raceDeath$No_Cases)
raceDeath$No_Deaths <- replaceCommas(raceDeath$No_Deaths)

```
```{r}
raceDeath[1]<-c("Latino","White","Asian","Black","Others","Natives","Natives","Others")

#change factor to numeric
raceDeath$Percent_Cases <- as.numeric(raceDeath$Percent_Cases)
raceDeath$Percent_Deaths <- as.numeric(raceDeath$Percent_Deaths)
raceDeath$Percent_CA_Population <- as.numeric(raceDeath$Percent_CA_Population)

# combine same race of "other" and "Native to 2 list
Other<-c("Other",sum(raceDeath[ raceDeath$'Race' == 'Others',2]),sum(raceDeath[ raceDeath$'Race' == 'Others',3]),sum(raceDeath[ raceDeath$'Race' == 'Others',4]),sum(raceDeath[ raceDeath$'Race' == 'Others',5]),sum(raceDeath[ raceDeath$'Race' == 'Others',6]))

Native<-c("Native",sum(raceDeath[raceDeath$'Race' == 'Natives',2]),sum(raceDeath[ raceDeath$'Race' == 'Natives',3]),sum(raceDeath[ raceDeath$'Race' == 'Natives',4]),sum(raceDeath[ raceDeath$'Race' == 'Natives',5]),sum(raceDeath[ raceDeath$'Race' == 'Natives',6]))

#add list to data frame
raceDeath<-rbind(raceDeath, Other)
raceDeath<-rbind(raceDeath, Native)

#delete 4 original rows "others" and "Native"
raceDeath<-raceDeath[-c(5,6,7,8),]

#change factor to numeric
raceDeath$No_Cases<-as.numeric(raceDeath$No_Cases)
raceDeath$Percent_Cases<-as.numeric(raceDeath$Percent_Cases)
raceDeath$No_Deaths<-as.numeric(raceDeath$No_Deaths)
raceDeath$Percent_Deaths<-as.numeric(raceDeath$Percent_Deaths)
raceDeath$Percent_CA_Population<-as.numeric(raceDeath$Percent_CA_Population)
```

```{r}
##################################################### pie:no.cases bar:pop vs death
#All Cases and Deaths associated with COVID-19 by Race and Ethnicity
raceDeath%>%
  plot_ly(labels=~Race,
                values=~No_Cases,
                marker = list(color = mycolors)) %>%
        add_pie(hole=0.4)%>%
        layout(xaxis = list(zeroline = F,
                            showline = F,
                            showticklabels = F,
                            showgrid = F),
               yaxis = list(zeroline = F,
                            showline = F,
                            showticklabels = F,
                            showgrid = F))
  
```

### Death Rate VS Population Rate By Race


```{r}
fig <- plot_ly(raceDeath, x = ~Race, y = ~Percent_Deaths, type = 'bar', name = 'DeathRate')
fig <- fig %>% add_trace(y = ~Percent_CA_Population, name = 'PopRate')
fig <- fig %>% layout(yaxis = list(title = 'Count'), barmode = 'group')

fig
```

### Cumulative Cases By Age

```{r}
#https://occovid19.ochealthinfo.com/coronavirus-in-oc
Age<-c("0-17","18-24","25-34","35-44","45-54","55-64","65-74","74-84","85+")
Percentage_Age<-c(52,257,507,407,499,451,280,167,122)
AgeRate<-as.data.frame(Age)
AgeRate<-cbind(AgeRate,Percentage_Age)

```


```{r}
AgeRate %>%
  plot_ly(labels=~Age,
                values=~Percentage_Age,
                marker = list(color = mycolors)) %>%
        add_pie(hole=0.4)%>%
        layout(xaxis = list(zeroline = F,
                            showline = F,
                            showticklabels = F,
                            showgrid = F),
               yaxis = list(zeroline = F,
                            showline = F,
                            showticklabels = F,
                            showgrid = F))
  
```

Map
==============================
```{r}
# find total # of failures

orangeData <- read.csv("~/Documents/CP101/4Assignment/Assignment 3/Orange_Geo.csv", header = T)
mycolor <- colorNumeric(palette = 'RdBu',
                        domain = c(1:700),
                        reverse = T)
orangeData%>% 
  leaflet() %>% 
  addProviderTiles('CartoDB') %>% 
  addMarkers(lng = -117.853104, 
                   lat = 33.787914,
             popup = ~paste0("Orange County, CA"))%>%
  addCircleMarkers(radius = ~Total_Cases*0.1,
                   color = ~mycolor(Total_Cases),
                   popup = ~paste0(City,
                                   "
", "Total Confirmed:", Total_Cases)) %>% addLegend(pal = mycolor, values=c(1:700), opacity=0.75, title="Total Confirmed Cases", position = "topright")%>% setView(lng = -117.853104, lat = 33.787914, zoom = 11) ``` CasesInCites ================================== ```{r} theurl2 <- getURL("https://occovid19.ochealthinfo.com/coronavirus-in-oc",.opts = list(ssl.verifypeer = FALSE) ) tables1 <- readHTMLTable(theurl2,header=TRUE,stringsAsFactors = FALSE) tables1 <- list.clean(tables1, fun = is.null, recursive = FALSE) ``` ```{r} citiesOrange<-tables1[[1]] #delete last row citiesOrange1<- citiesOrange[-nrow(citiesOrange),] #change column names names(citiesOrange1)[3] <- "Total_Cases" #char to numeric citiesOrange1$Total_Cases <- as.numeric(citiesOrange1$Total_Cases) citiesOrange1$POPULATION1 <- as.numeric(citiesOrange1$POPULATION1) ``` ```{r} #citiesOrange1 ``` ```{r} fig3 <- plot_ly(citiesOrange1, x = ~CITY, y = ~Total_Cases, type = 'bar', name = 'Cases', color=rainbow(length(citiesOrange1$POPULATION1))) fig3 <- fig3 %>% add_trace(y = ~POPULATION1, name = 'PopRate') fig3 <- fig3 %>% layout(yaxis = list(title = 'Count'), barmode = 'group') fig3 <- fig3 %>% layout(showlegend = FALSE) fig3 ``` ```{r} rpivotTable(citiesOrange1, aggregatorName = "Count", cols = "Total_Cases", rows = "CITY", rendererName = "Heatmap") ``` DataTable ============================== ```{r} datatable(data2, caption = "County in CA", rownames = T, filter= "top", options = list(pageLength = 25) ) ``` Resources {data-orientation=rows} ============================================ ## Row 2 ### Resources ```{r} valueBox("Data", icon = "fa-ship", color="rgb(100,100,100)") ``` Row ----------------------- | Data Set | From | Link | | :------------- |:------------- | :----- | | Covid19 in Counties,CA | The California Health and Human Services Agency (CHHS) | https://data.chhs.ca.gov/dataset/6882c390-b2d7-4b9a-aefa-2068cee63e47/resource/6cd8d424-dfaa-4bdd-9410-a3d656e1176e/download/covid19data.csv | | Covid19 in Age,Orange | OCgov.com | https://occovid19.ochealthinfo.com/coronavirus-in-oc | | Covid19 in Cities,Orange | OCgov.com | https://occovid19.ochealthinfo.com/coronavirus-in-oc | | Covid19 Race and Ethnicity Data | California Department of Health | https://www.cdph.ca.gov/Programs/CID/DCDC/Pages/COVID-19/Race-Ethnicity.aspx# | About ================================ CP101 Instructor: Karen Chapple GSI: Manuel Santana Palacios Created by: Huiqing Fu Spring 2020 05/16/2020 UC Berkeley