First we load annual cancer incidence rate and mortality rate from HA open data
carinc_list <- rjson::fromJSON(file = "https://www3.ha.org.hk/cancereg/datagovhk/HKCaR-incidence-EN.json")
carinc_df <- as.data.frame(do.call(rbind, carinc_list))
carmor_list <- rjson::fromJSON(file = "https://www3.ha.org.hk/cancereg/datagovhk/HKCaR-mortality-EN.json")
carmor_df <- as.data.frame(do.call(rbind, carmor_list))
cancer_df <- merge(carinc_df, carmor_df, by = c("Year", "Sex"))
cancer_df[colnames(cancer_df)[-2]] <- cancer_df[colnames(cancer_df)[-2]] %>% apply(MARGIN = c(1, 2), FUN = as.numeric) # unlist numeric elements
cancer_df[colnames(cancer_df)[2]] <- lapply(cancer_df[colnames(cancer_df)[2]], FUN = as.character) # unlist char elements
head(cancer_df,5)
## Year Sex Number_of_new_cases Crude_incidence_rate
## 1 1983 Female 6334 246.1
## 2 1983 Male 8654 312.3
## 3 1984 Female 6280 241.0
## 4 1984 Male 8313 297.8
## 5 1985 Female 6694 253.5
## Age_standardized_incidence_rate Number_of_deaths Crude_mortality_rate
## 1 228.8 2687 104.4
## 2 349.8 4539 163.8
## 3 221.3 2812 107.9
## 4 326.1 4535 162.4
## 5 229.3 2945 111.5
## Age_standardized_mortality_rate
## 1 93.8
## 2 185.0
## 3 95.3
## 4 179.5
## 5 97.0
Interative chart to visualize change of cancer incidence rate by gender - play button to play the chart in standard speed - scrollbar allows focus on specific year