37 changed files with 1205 additions and 386 deletions
@ -0,0 +1 @@ |
|||
comment: false |
@ -0,0 +1,25 @@ |
|||
# Contributor Code of Conduct |
|||
|
|||
As contributors and maintainers of this project, we pledge to respect all people who |
|||
contribute through reporting issues, posting feature requests, updating documentation, |
|||
submitting pull requests or patches, and other activities. |
|||
|
|||
We are committed to making participation in this project a harassment-free experience for |
|||
everyone, regardless of level of experience, gender, gender identity and expression, |
|||
sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion. |
|||
|
|||
Examples of unacceptable behavior by participants include the use of sexual language or |
|||
imagery, derogatory comments or personal attacks, trolling, public or private harassment, |
|||
insults, or other unprofessional conduct. |
|||
|
|||
Project maintainers have the right and responsibility to remove, edit, or reject comments, |
|||
commits, code, wiki edits, issues, and other contributions that are not aligned to this |
|||
Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed |
|||
from the project team. |
|||
|
|||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by |
|||
opening an issue or contacting one or more of the project maintainers. |
|||
|
|||
This Code of Conduct is adapted from the Contributor Covenant |
|||
(http:contributor-covenant.org), version 1.0.0, available at |
|||
http://contributor-covenant.org/version/1/0/0/ |
@ -1,33 +1,37 @@ |
|||
Package: cdcfluview |
|||
Type: Package |
|||
Title: Retrieve U.S. Flu Season Data from the CDC FluView Portal |
|||
Version: 0.6.0 |
|||
Date: 2017-10-20 |
|||
Authors@R: c(person("Bob","Rudis", email = "bob@rud.is", role = c("aut", "cre")), |
|||
person("Craig", "McGowan", email = "mcgowan.cj@gmail.com", role = "ctb")) |
|||
Encoding: UTF-8 |
|||
Title: Retrieve 'U.S'.' Flu Season Data from the 'CDC' 'FluView' Portal |
|||
Version: 0.7.0 |
|||
Date: 2017-11-04 |
|||
Authors@R: c( |
|||
person("Bob", "Rudis", email = "bob@rud.is", role = c("aut", "cre"), |
|||
comment = c(ORCID = "0000-0001-5670-2640")), |
|||
person("Craig", "McGowan", email = "mcgowan.cj@gmail.com", role = "ctb") |
|||
) |
|||
Author: Bob Rudis (bob@rud.is) |
|||
Maintainer: Bob Rudis <bob@rud.is> |
|||
Description: The U.S. Centers for Disease Control (CDC) maintains a portal |
|||
<http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html> for |
|||
accessing state, regional and national influenza statistics as well as |
|||
Mortality Surveillance Data. The Flash interface makes it difficult and |
|||
time-consuming to select and retrieve influenza data. This package |
|||
provides functions to access the data provided by the portal's underlying API. |
|||
URL: http://github.com/hrbrmstr/cdcfluview |
|||
URL: https://github.com/hrbrmstr/cdcfluview |
|||
BugReports: https://github.com/hrbrmstr/cdcfluview/issues |
|||
License: MIT + file LICENSE |
|||
LazyData: true |
|||
Suggests: |
|||
testthat, |
|||
covr |
|||
Depends: |
|||
R (>= 3.2.0) |
|||
Imports: |
|||
httr (>= 0.3.0), |
|||
xml2, |
|||
httr, |
|||
tools, |
|||
dplyr, |
|||
utils, |
|||
purrr, |
|||
readr, |
|||
jsonlite, |
|||
V8 |
|||
Depends: |
|||
R (>= 3.2.0) |
|||
stats, |
|||
utils, |
|||
sf |
|||
RoxygenNote: 6.0.1 |
|||
|
@ -1,21 +1,24 @@ |
|||
# Generated by roxygen2: do not edit by hand |
|||
|
|||
export(get_flu_data) |
|||
export(get_hosp_data) |
|||
export(get_mortality_surveillance_data) |
|||
export(get_state_data) |
|||
export(get_weekly_flu_report) |
|||
import(V8) |
|||
import(dplyr) |
|||
export(agd_ipt) |
|||
export(cdc_coverage_map) |
|||
export(geographic_spread) |
|||
export(hospitalizations) |
|||
export(ili_weekly_activity_indicators) |
|||
export(ilinet) |
|||
export(pi_mortality) |
|||
export(state_data_providers) |
|||
export(surveillance_areas) |
|||
export(who_nrevss) |
|||
import(httr) |
|||
import(utils) |
|||
import(xml2) |
|||
importFrom(dplyr,"%>%") |
|||
importFrom(dplyr,bind_rows) |
|||
importFrom(dplyr,filter) |
|||
importFrom(dplyr,left_join) |
|||
importFrom(dplyr,mutate) |
|||
importFrom(jsonlite,fromJSON) |
|||
importFrom(purrr,discard) |
|||
importFrom(purrr,keep) |
|||
importFrom(purrr,map) |
|||
importFrom(purrr,map_chr) |
|||
importFrom(purrr,map_df) |
|||
importFrom(purrr,map_lgl) |
|||
importFrom(readr,read_csv) |
|||
importFrom(readr,type_convert) |
|||
importFrom(sf,st_read) |
|||
importFrom(stats,setNames) |
|||
importFrom(tools,file_path_sans_ext) |
|||
importFrom(utils,read.csv) |
|||
importFrom(utils,unzip) |
|||
|
@ -0,0 +1,15 @@ |
|||
# CDC U.S. region names to ID map |
|||
.region_map <- c(national=3, hhs=1, census=2, state=5) |
|||
|
|||
# CDC hospital surveillance surveillance area name to internal pkg use map |
|||
.surv_map <- c(`FluSurv-NET`="flusurv", `EIP`="eip", `IHSP`="ihsp") |
|||
.surv_rev_map <- c(flusurv="FluSurv-NET", eip="EIP", ihsp="IHSP") |
|||
|
|||
# CDC P&I mortality GepID mapping |
|||
.geoid_map <- c(national="1", state="2", region="3") |
|||
|
|||
# Our bot's user-agent string |
|||
.cdcfluview_ua <- "Mozilla/5.0 (compatible; R-cdcvluview Bot/2.0; https://github.com/hrbrmstr/cdcfluview)" |
|||
|
|||
# CDC Basemap |
|||
.cdc_basemap <- "https://gis.cdc.gov/grasp/fluview/FluView1References/data/US_States_w_PR_labels.json" |
@ -1 +1,15 @@ |
|||
utils::globalVariables(".") |
|||
# CDC U.S. region names to ID map |
|||
.region_map <- c(national=3, hhs=1, census=2, state=5) |
|||
|
|||
# CDC hospital surveillance surveillance area name to internal pkg use map |
|||
.surv_map <- c(`FluSurv-NET`="flusurv", `EIP`="eip", `IHSP`="ihsp") |
|||
.surv_rev_map <- c(flusurv="FluSurv-NET", eip="EIP", ihsp="IHSP") |
|||
|
|||
# CDC P&I mortality GepID mapping |
|||
.geoid_map <- c(national="1", state="2", region="3") |
|||
|
|||
# Our bot's user-agent string |
|||
.cdcfluview_ua <- "Mozilla/5.0 (compatible; R-cdcvluview Bot/2.0; https://github.com/hrbrmstr/cdcfluview)" |
|||
|
|||
# CDC Basemap |
|||
.cdc_basemap <- "https://gis.cdc.gov/grasp/fluview/FluView1References/data/US_States_w_PR_labels.json" |
|||
|
@ -0,0 +1,55 @@ |
|||
#' Age Group Distribution of Influenza Positive Tests Reported by Public Health Laboratories |
|||
#' |
|||
#' Retrieves the age group distribution of influenza positive tests that are reported by |
|||
#' public health laboratories by influenza virus type and subtype/lineage. Laboratory data |
|||
#' from multiple seasons and different age groups is provided. |
|||
#' |
|||
#' @references |
|||
#' - [CDC FluView Portal](https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html) |
|||
#' - [AGD IPT Portal](https://gis.cdc.gov/grasp/fluview/flu_by_age_virus.html) |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' agd_ipt() |
|||
#' } |
|||
agd_ipt <- function() { |
|||
httr::GET( |
|||
url = "https://gis.cdc.gov/grasp/fluView6/GetFlu6AllDataP", |
|||
httr::user_agent(.cdcfluview_ua), |
|||
httr::add_headers( |
|||
Accept = "application/json, text/plain, */*", |
|||
Referer = "https://gis.cdc.gov/grasp/fluview/flu_by_age_virus.html" |
|||
), |
|||
httr::verbose(), |
|||
httr::timeout(60) |
|||
) -> res |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
xdat <- httr::content(res, as="parsed") |
|||
xdat <- jsonlite::fromJSON(xdat, flatten=TRUE) |
|||
|
|||
sea_names <- c("seasonid", "sea_description", "sea_startweek", "sea_endweek", "sea_enabled", |
|||
"sea_label", "sea_showlabtype") |
|||
age_names <- c("ageid", "age_label", "age_color_hexvalue", "age_enabled") |
|||
typ_names <- c("virusid", "vir_description", "vir_label", "vir_startmmwrid", "vir_endmmwrid", |
|||
"vir_displayorder", "vir_colorname", "vir_color_hexvalue", "vir_labtypeid", |
|||
"vir_sortid") |
|||
vir_names <- c("virusid", "ageid", "count", "mmwrid", "seasonid", "publishyearweekid", "loaddatetime") |
|||
|
|||
sea_df <- stats::setNames(xdat$Season, sea_names) |
|||
age_df <- stats::setNames(xdat$Age, age_names) |
|||
typ_df <- stats::setNames(xdat$VirusType, typ_names) |
|||
vir_df <- stats::setNames(xdat$VirusData, vir_names) |
|||
|
|||
vir_df <- dplyr::left_join(vir_df, sea_df, "seasonid") |
|||
vir_df <- dplyr::left_join(vir_df, age_df, "ageid") |
|||
vir_df <- dplyr::left_join(vir_df, typ_df, "virusid") |
|||
class(vir_df) <- c("tbl_df", "tbl", "data.frame") |
|||
|
|||
vir_df_cols <- c("sea_label", "age_label", "vir_label", "count", "mmwrid", "seasonid", |
|||
"publishyearweekid", "sea_description", "sea_startweek", "sea_endweek", |
|||
"vir_description", "vir_startmmwrid", "vir_endmmwrid") |
|||
|
|||
vir_df[,vir_df_cols] |
|||
|
|||
} |
@ -1,17 +1,22 @@ |
|||
#' Retrieve Flu Season Data from the CDC FluView Portal |
|||
======= |
|||
#' Retrieve 'U.S'.' Flu Season Data from the 'CDC' 'FluView' Portal |
|||
#' |
|||
#' The U.S. Centers for Disease Control (CDC) maintains a portal |
|||
#' \code{https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html} for |
|||
#' <http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html> for |
|||
#' accessing state, regional and national influenza statistics as well as |
|||
#' Mortality Surveillance Data. The Flash interface makes it difficult |
|||
#' and time-consuming to select and retrieve influenza data. This package |
|||
#' provides functions to access the data provided by portal's underlying API. |
|||
#' Mortality Surveillance Data. The Flash interface makes it difficult and |
|||
#' time-consuming to select and retrieve influenza data. This package |
|||
#' provides functions to access the data provided by the portal's underlying API. |
|||
#' |
|||
#' @md |
|||
#' @name cdcfluview |
|||
#' @docType package |
|||
#' @author Bob Rudis (bob@@rud.is) |
|||
#' @import httr xml2 dplyr utils V8 |
|||
#' @importFrom purrr map map_df map_chr map_lgl discard keep |
|||
#' @importFrom readr read_csv type_convert |
|||
#' @import httr |
|||
#' @importFrom tools file_path_sans_ext |
|||
#' @importFrom dplyr left_join bind_rows mutate filter %>% |
|||
#' @importFrom jsonlite fromJSON |
|||
#' @importFrom stats setNames |
|||
#' @importFrom sf st_read |
|||
#' @importFrom utils read.csv unzip |
|||
NULL |
|||
|
@ -0,0 +1,28 @@ |
|||
#' Retrieve CDC U.S. Coverage Map |
|||
#' |
|||
#' The CDC FluView application uses a composite basemap of coverage areas |
|||
#' within the United States that elides and scales Alaska, Hawaii and |
|||
#' Puerto Rico and provides elided and scaled breakouts for New York City |
|||
#' and the District of Columbia.\cr |
|||
#' \cr |
|||
#' The basemap provides polygon identifiers by: |
|||
#' \cr |
|||
#' - `STATE_FIPS` |
|||
#' - `STATE_ABBR` |
|||
#' - `STATE_NAME` |
|||
#' - `HHS_Region` |
|||
#' - `FIPSTXT`) |
|||
#' \cr |
|||
#' This function retrieves the shapefile, projects to EPSG:5069 and |
|||
#' returns it as an `sf` (simple features) object. |
|||
#' |
|||
#' @md |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' plot(cdc_coverage_map()) |
|||
#' } |
|||
cdc_coverage_map <- function() { |
|||
xsf <- sf::st_read(.cdc_basemap, quiet=TRUE, stringsAsFactors=FALSE) |
|||
sf::st_crs(xsf) <- 4326 |
|||
sf::st_transform(xsf, 5069) |
|||
} |
@ -0,0 +1,38 @@ |
|||
#' State and Territorial Epidemiologists Reports of Geographic Spread of Influenza |
|||
#' |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' geographic_spread() |
|||
#' } |
|||
geographic_spread <- function() { |
|||
|
|||
meta <- jsonlite::fromJSON("https://gis.cdc.gov/grasp/Flu8/GetPhase08InitApp?appVersion=Public") |
|||
meta$seasons$seasonid |
|||
|
|||
httr::POST( |
|||
url = "https://gis.cdc.gov/grasp/Flu8/PostPhase08DownloadData", |
|||
httr::user_agent(.cdcfluview_ua), |
|||
httr::add_headers( |
|||
Origin = "https://gis.cdc.gov", |
|||
Accept = "application/json, text/plain, */*", |
|||
Referer = "https://gis.cdc.gov/grasp/fluview/FluView8.html" |
|||
), |
|||
encode = "json", |
|||
body = list( |
|||
AppVersion = "Public", |
|||
SeasonIDs = paste0(meta$seasons$seasonid, collapse=",") |
|||
), |
|||
httr::timeout(60), |
|||
httr::verbose() |
|||
) -> res |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
res <- httr::content(res, as="parsed", flatten=TRUE) |
|||
|
|||
xdf <- dplyr::bind_rows(res$datadownload) |
|||
xdf$weekend <- as.Date(xdf$weekend, format="%B-%d-%Y") |
|||
|
|||
xdf |
|||
|
|||
} |
@ -0,0 +1,102 @@ |
|||
#' Laboratory-Confirmed Influenza Hospitalizations |
|||
#' |
|||
#' @md |
|||
#' @param surveillance_area one of "`flusurv`", "`eip`", or "`ihsp`" |
|||
#' @param region Using "`all`" mimics selecting "Entire Network" from the |
|||
#' CDC FluView application drop down. Individual regions for each |
|||
#' surveillance area can also be selected. Use [surveillance_areas()] to |
|||
#' see a list of valid sub-regions for each surveillance area. |
|||
#' @references |
|||
#' - [Hospital Portal](https://gis.cdc.gov/GRASP/Fluview/FluHospRates.html) |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' hosp_fs <- hospitalizations("flusurv") |
|||
#' hosp_eip <- hospitalizations("eip") |
|||
#' hosp_ihsp <- hospitalizations("ihsp") |
|||
#' } |
|||
hospitalizations <- function(surveillance_area=c("flusurv", "eip", "ihsp"), |
|||
region="all") { |
|||
|
|||
sarea <- match.arg(tolower(surveillance_area), choices = c("flusurv", "eip", "ihsp")) |
|||
sarea <- .surv_rev_map[sarea] |
|||
|
|||
meta <- jsonlite::fromJSON("https://gis.cdc.gov/GRASP/Flu3/GetPhase03InitApp?appVersion=Public") |
|||
areas <- setNames(meta$catchments[,c("networkid", "name", "area", "catchmentid")], |
|||
c("networkid", "surveillance_area", "region", "id")) |
|||
|
|||
reg <- region |
|||
if (reg == "all") reg <- "Entire Network" |
|||
|
|||
tgt <- dplyr::filter(areas, (surveillance_area == sarea) & (region == reg)) |
|||
|
|||
if (nrow(tgt) == 0) { |
|||
stop("Region not found. Use `surveillance_areas()` to see a list of valid inputs.", |
|||
call.=FALSE) |
|||
} |
|||
|
|||
httr::POST( |
|||
url = "https://gis.cdc.gov/GRASP/Flu3/PostPhase03GetData", |
|||
httr::user_agent(.cdcfluview_ua), |
|||
httr::add_headers( |
|||
Origin = "https://gis.cdc.gov", |
|||
Accept = "application/json, text/plain, */*", |
|||
Referer = "https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html" |
|||
), |
|||
encode = "json", |
|||
body = list( |
|||
appversion = "Public", |
|||
networkid = tgt$networkid, |
|||
cacthmentid = tgt$id |
|||
), |
|||
httr::verbose() |
|||
) -> res |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
res <- httr::content(res) |
|||
|
|||
hosp <- list(res = res, meta = meta) |
|||
|
|||
age_df <- setNames(hosp$meta$ages, c("age_label", "age", "color")) |
|||
age_df <- age_df[,c("age", "age_label")] |
|||
|
|||
sea_df <- setNames( |
|||
hosp$meta$seasons, |
|||
c("sea_description", "sea_endweek", "sea_label", "seasonid", "sea_startweek", "color", "color_hexvalue")) |
|||
sea_df <- sea_df[,c("seasonid", "sea_label", "sea_description", "sea_startweek", "sea_endweek")] |
|||
|
|||
ser_names <- unlist(hosp$res$busdata$datafields, use.names = FALSE) |
|||
|
|||
mmwr_df <- bind_rows(hosp$res$mmwr) |
|||
mmwr_df <- mmwr_df[,c("mmwrid", "weekend", "weeknumber", "weekstart", "year", |
|||
"yearweek", "seasonid", "weekendlabel", "weekendlabel2")] |
|||
|
|||
dplyr::bind_rows(lapply(hosp$res$busdata$dataseries, function(.x) { |
|||
tdf <- dplyr::bind_rows(lapply(.x$data, function(.x) setNames(.x, ser_names))) |
|||
tdf$age <- .x$age |
|||
tdf$season <- .x$season |
|||
tdf |
|||
})) -> xdf |
|||
|
|||
dplyr::left_join(xdf, mmwr_df, c("mmwrid", "weeknumber")) %>% |
|||
dplyr::left_join(age_df, "age") %>% |
|||
dplyr::left_join(sea_df, "seasonid") %>% |
|||
dplyr::mutate( |
|||
surveillance_area = sarea, |
|||
region = reg |
|||
) |
|||
|
|||
} |
|||
|
|||
#' Retrieve a list of valid sub-regions for each surveillance area. |
|||
#' |
|||
#' @md |
|||
#' @export |
|||
#' @examples |
|||
#' surveillance_areas() |
|||
surveillance_areas <- function() { |
|||
meta <- jsonlite::fromJSON("https://gis.cdc.gov/GRASP/Flu3/GetPhase03InitApp?appVersion=Public") |
|||
xdf <- setNames(meta$catchments[,c("name", "area")], c("surveillance_area", "region")) |
|||
xdf$surveillance_area <- .surv_map[xdf$surveillance_area] |
|||
xdf |
|||
} |
@ -0,0 +1,80 @@ |
|||
#' Retrieve weekly state-level ILI indicators per-state for a given season |
|||
#' |
|||
#' @md |
|||
#' @param season_start_year numeric; start year for flu season (e.g. 2017 for 2017-2018 season) |
|||
#' @references |
|||
#' - [ILI Activity Indicator Map Portal](https://gis.cdc.gov/grasp/fluview/main.html) |
|||
#' @note These statistics use the proportion of outpatient visits to healthcare providers |
|||
#' for influenza-like illness to measure the ILI activity level within a state. They do |
|||
#' not, however, measure the extent of geographic spread of flu within a state. Therefore, |
|||
#' outbreaks occurring in a single city could cause the state to display high activity levels.\cr |
|||
#' \cr |
|||
#' Data collected in ILINet may disproportionately represent certain populations within |
|||
#' a state, and therefore may not accurately depict the full picture of influenza activity |
|||
#' for the whole state.\cr |
|||
#' \cr |
|||
#' All summary statistics are based on either data collected in ILINet, or reports from |
|||
#' state and territorial epidemiologists. Differences in the summary data presented by |
|||
#' CDC and state health departments likely represent differing levels of data completeness |
|||
#' with data presented by the state likely being the more complete. |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' ili_weekly_activity_indicators(2016) |
|||
#' } |
|||
ili_weekly_activity_indicators <- function(season_start_year) { |
|||
|
|||
jsonlite::fromJSON("https://gis.cdc.gov/grasp/fluView1/Phase1IniP") %>% |
|||
jsonlite::fromJSON() -> meta |
|||
|
|||
season <- season_start_year - 1960 |
|||
|
|||
res <- httr::GET(sprintf("https://gis.cdc.gov/grasp/fluView1/Phase1SeasonDataP/%s", |
|||
season)) |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
res <- httr::content(res, as="parsed") |
|||
res <- jsonlite::fromJSON(res) |
|||
|
|||
setNames( |
|||
meta$ili_intensity[,c("iliActivityid", "ili_activity_label", "legend")], |
|||
c("iliactivityid", "ili_activity_label", "ili_activity_group") |
|||
) -> iliact |
|||
|
|||
dplyr::left_join(res$busdata, meta$stateinfo, "stateid") %>% |
|||
dplyr::left_join(res$mmwr, "mmwrid") %>% |
|||
dplyr::left_join(iliact, "iliactivityid") -> xdf |
|||
|
|||
xdf <- xdf[,c("statename", "ili_activity_label", "ili_activity_group", |
|||
"statefips", "stateabbr", "weekend", "weeknumber", "year", "seasonid")] |
|||
|
|||
xdf$statefips <- trimws(xdf$statefips) |
|||
xdf$stateabbr <- trimws(xdf$stateabbr) |
|||
xdf$weekend <- as.Date(xdf$weekend) |
|||
xdf$ili_activity_label <- factor(xdf$ili_activity_label, |
|||
levels=iliact$ili_activity_label) |
|||
|
|||
class(xdf) <- c("tbl_df", "tbl", "data.frame") |
|||
|
|||
xdf |
|||
|
|||
} |
|||
|
|||
#' Retrieve metadat about U.S. State CDC Provider Data |
|||
#' |
|||
#' @md |
|||
#' @export |
|||
#' @examples |
|||
#' state_data_providers() |
|||
state_data_providers <- function() { |
|||
|
|||
jsonlite::fromJSON("https://gis.cdc.gov/grasp/fluView1/Phase1IniP") %>% |
|||
jsonlite::fromJSON() -> meta |
|||
|
|||
state_info <- meta$stateinfo |
|||
state_info <- state_info[,c("statename", "statehealthdeptname", "url", "statewebsitename", "statefluphonenum")] |
|||
class(state_info) <- c("tbl_df", "tbl", "data.frame") |
|||
|
|||
state_info |
|||
|
|||
} |
@ -0,0 +1,80 @@ |
|||
#' Retrieve ILINet Surveillance Data |
|||
#' |
|||
#' The CDC FluView Portal provides in-season and past seasons' national, regional, |
|||
#' and state-level outpatient illness and viral surveillance data from both |
|||
#' ILINet (Influenza-like Illness Surveillance Network) and WHO/NREVSS |
|||
#' (National Respiratory and Enteric Virus Surveillance System). |
|||
#' |
|||
#' This function retrieves current and historical ILINet surveillance data for |
|||
#' the identified region. |
|||
#' |
|||
#' @md |
|||
#' @param region one of "`national`", "`hhs`", "`census`", or "`state`" |
|||
#' @references |
|||
#' - [CDC FluView Portal](https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html) |
|||
#' - [ILINet Portal](https://wwwn.cdc.gov/ilinet/) (Login required) |
|||
#' - [WHO/NREVSS](https://www.cdc.gov/surveillance/nrevss/index.html) |
|||
#' @export |
|||
#' @examples |
|||
#' national_ili <- ilinet("national") |
|||
#' hhs_ili <- ilinet("hhs") |
|||
#' census_ili <- ilinet("census") |
|||
#' state_ili <- ilinet("state") |
|||
#' \dontrun{ |
|||
#' library(purrr) |
|||
#' map_df( |
|||
#' c("national", "hhs", "census", "state"), |
|||
#' ~ilinet(.x) %>% readr::type_convert()) |
|||
#' } |
|||
ilinet <- function(region=c("national", "hhs", "census", "state")) { |
|||
|
|||
region <- match.arg(tolower(region), c("national", "hhs", "census", "state")) |
|||
|
|||
list( |
|||
AppVersion = "Public", |
|||
DatasourceDT = list(list(ID = 1, Name = "ILINet")), |
|||
RegionTypeId = .region_map[region] |
|||
) -> params |
|||
|
|||
params$SubRegionsDT <- switch(region, |
|||
national = { list(list(ID=0, Name="")) }, |
|||
hhs = { lapply(1:10, function(i) list(ID=i, Name=as.character(i))) }, |
|||
census = { lapply(1:9, function(i) list(ID=i, Name=as.character(i))) }, |
|||
state = { lapply(1:59, function(i) list(ID=i, Name=as.character(i))) } |
|||
) |
|||
|
|||
seasons <- 37:((unclass(as.POSIXlt(Sys.time()))[["year"]] + 1900) - 1960) |
|||
params$SeasonsDT <- lapply(seasons, function(i) list(ID=i, Name=as.character(i))) |
|||
|
|||
tf <- tempfile(fileext = ".zip") |
|||
td <- tempdir() |
|||
|
|||
on.exit(unlink(tf), TRUE) |
|||
|
|||
httr::POST( |
|||
url = "https://gis.cdc.gov/grasp/flu2/PostPhase02DataDownload", |
|||
httr::user_agent(.cdcfluview_ua), |
|||
httr::add_headers( |
|||
Origin = "https://gis.cdc.gov", |
|||
Accept = "application/json, text/plain, */*", |
|||
Referer = "https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html" |
|||
), |
|||
encode = "json", |
|||
body = params, |
|||
httr::verbose(), |
|||
httr::write_disk(tf) |
|||
) -> res |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
nm <- unzip(tf, overwrite = TRUE, exdir = td) |
|||
|
|||
xdf <- read.csv(nm, skip = 1, stringsAsFactors=FALSE) |
|||
xdf <- .mcga(xdf) |
|||
class(xdf) <- c("tbl_df", "tbl", "data.frame") |
|||
|
|||
xdf[xdf=="X"] <- NA |
|||
|
|||
xdf |
|||
|
|||
} |
@ -0,0 +1,135 @@ |
|||
#' Pneumonia and Influenza Mortality Surveillance |
|||
#' |
|||
#' The National Center for Health Statistics (NCHS) collects and disseminates the Nation's |
|||
#' official vital statistics. NCHS collects death certificate data from state vital |
|||
#' statistics offices for virtually all deaths occurring in the United States. Pneumonia |
|||
#' and influenza (P&I) deaths are identified based on ICD-10 |
|||
#' multiple cause of death codes.\cr |
|||
#' \cr |
|||
#' NCHS Mortality Surveillance System data are presented by the week the death occurred |
|||
#' at the national, state, and HHS Region levels. Data on the percentage of deaths due |
|||
#' to P&I on a national level are released two weeks after the week of death to allow |
|||
#' for collection of enough data to produce a stable percentage. States and HHS regions |
|||
#' with less than 20% of the expected total deaths (average number of total deaths |
|||
#' reported by week during 2008-2012) will be marked as insufficient data. Collection |
|||
#' of complete data is not expected at the time of initial report, and a reliable |
|||
#' percentage of deaths due to P&I is not anticipated at the U.S. Department of Health |
|||
#' and Human Services region or state level within this two week period. The data for |
|||
#' earlier weeks are continually revised and the proportion of deaths due to P&I may |
|||
#' increase or decrease as new and updated death certificate data are received by NCHS.\cr |
|||
#' \cr |
|||
#' The seasonal baseline of P&I deaths is calculated using a periodic regression model |
|||
#' that incorporates a robust regression procedure applied to data from the previous |
|||
#' five years. An increase of 1.645 standard deviations above the seasonal baseline |
|||
#' of P&I deaths is considered the "epidemic threshold," i.e., the point at which |
|||
#' the observed proportion of deaths attributed to pneumonia or influenza was |
|||
#' significantly higher than would be expected at that time of the year in the |
|||
#' absence of substantial influenza-related mortality. Baselines and thresholds are |
|||
#' calculated at the national and regional level and by age group. |
|||
#' |
|||
#' @md |
|||
#' @param coverage_area coverage area for data (national, state or region) |
|||
#' @note Queries for "state" and "region" are not "instantaneous" and can near or over 30s retrieval delays. |
|||
#' @references |
|||
#' - [Pneumonia and Influenza Mortality Surveillance Portal](https://gis.cdc.gov/grasp/fluview/mortality.html) |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' ndf <- pi_mortality() |
|||
#' sdf <- pi_mortality("state") |
|||
#' rdf <- pi_mortality("region") |
|||
#' } |
|||
pi_mortality <- function(coverage_area=c("national", "state", "region")) { |
|||
|
|||
coverage_area <- match.arg(tolower(coverage_area), choices = c("national", "state", "region")) |
|||
|
|||
us_states <- read.csv("https://gis.cdc.gov/grasp/fluview/Flu7References/Data/USStates.csv", |
|||
stringsAsFactors=FALSE) |
|||
us_states <- setNames(us_states, c("region_name", "subgeoid", "state_abbr")) |
|||
us_states <- us_states[,c("region_name", "subgeoid")] |
|||
us_states$subgeoid <- as.character(us_states$subgeoid) |
|||
|
|||
meta <- jsonlite::fromJSON("https://gis.cdc.gov/grasp/flu7/GetPhase07InitApp?appVersion=Public") |
|||
|
|||
mapcode_df <- setNames(meta$nchs_mapcode[,c("mapcode", "description")], c("map_code", "callout")) |
|||
mapcode_df$map_code <- as.character(mapcode_df$map_code) |
|||
|
|||
geo_df <- meta$nchs_geo_dim |
|||
geo_df$geoid <- as.character(geo_df$geoid) |
|||
|
|||
age_df <- setNames(meta$nchs_ages, c("ageid", "age_label")) |
|||
age_df$ageid <- as.character(age_df$ageid) |
|||
|
|||
mwmr_df <- meta$mmwr |
|||
mwmr_df$mmwrid <- as.character(mwmr_df$mmwrid) |
|||
mwmr_df <- setNames(mwmr_df, |
|||
c("mmwrid", "weekend", "mwmr_weeknumber", "weekstart", |
|||
"year", "yearweek", "mwmr_seasonid", "mwmr_label", "weekendlabel")) |
|||
|
|||
sum_df <- meta$nchs_summary |
|||
sum_df$seasonid <- as.character(sum_df$seasonid) |
|||
sum_df$ageid <- as.character(sum_df$ageid) |
|||
sum_df$geoid <- as.character(sum_df$geoid) |
|||
|
|||
httr::POST( |
|||
url = "https://gis.cdc.gov/grasp/flu7/PostPhase07DownloadData", |
|||
httr::user_agent(.cdcfluview_ua), |
|||
httr::add_headers( |
|||
Origin = "https://gis.cdc.gov", |
|||
Accept = "application/json, text/plain, */*", |
|||
Referer = "https://gis.cdc.gov/grasp/fluview/mortality.html" |
|||
), |
|||
encode = "json", |
|||
body = list( |
|||
AppVersion = "Public", |
|||
AreaParameters = list(list(ID=.geoid_map[coverage_area])), |
|||
SeasonsParameters = lapply(meta$seasons$seasonid, function(.x) { list(ID=as.integer(.x)) }), |
|||
AgegroupsParameters = list(list(ID="1")) |
|||
), |
|||
httr::timeout(60), |
|||
httr::verbose() |
|||
) -> res |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
res <- httr::content(res, as="parsed", flatten=TRUE) |
|||
|
|||
dplyr::bind_rows(res$seasons) %>% |
|||
dplyr::left_join(mapcode_df, "map_code") %>% |
|||
dplyr::left_join(geo_df, "geoid") %>% |
|||
dplyr::left_join(age_df, "ageid") %>% |
|||
dplyr::left_join(mwmr_df, "mmwrid") -> xdf |
|||
|
|||
xdf <- dplyr::mutate(xdf, coverage_area = coverage_area) |
|||
|
|||
if (coverage_area == "state") { |
|||
xdf <- dplyr::left_join(xdf, us_states, "subgeoid") |
|||
} else if (coverage_area == "region") { |
|||
xdf$region_name <- sprintf("Region %s", xdf$subgeoid) |
|||
} else { |
|||
xdf$region_name <- NA_character_ |
|||
} |
|||
|
|||
xdf[,c("seasonid", "baseline", "threshold", "percent_pni", |
|||
"percent_complete", "number_influenza", "number_pneumonia", |
|||
"all_deaths", "Total_PnI", "weeknumber", "geo_description", |
|||
"age_label", "weekend", "weekstart", "year", "yearweek", |
|||
"coverage_area", "region_name", "callout")] -> xdf |
|||
|
|||
suppressWarnings(xdf$baseline <- to_num(xdf$baseline)) |
|||
suppressWarnings(xdf$threshold <- to_num(xdf$threshold)) |
|||
suppressWarnings(xdf$percent_pni <- to_num(xdf$percent_pni) / 100) |
|||
suppressWarnings(xdf$percent_complete <- to_num(xdf$percent_complete) / 100) |
|||
suppressWarnings(xdf$number_influenza <- to_num(xdf$number_influenza)) |
|||
suppressWarnings(xdf$number_pneumonia <- to_num(xdf$number_pneumonia)) |
|||
suppressWarnings(xdf$all_deaths <- to_num(xdf$all_deaths)) |
|||
suppressWarnings(xdf$Total_PnI <- to_num(xdf$Total_PnI)) |
|||
suppressWarnings(xdf$weekend <- as.Date(xdf$weekend)) |
|||
suppressWarnings(xdf$weekstart <- as.Date(xdf$weekstart)) |
|||
|
|||
xdf <- .mcga(xdf) |
|||
|
|||
xdf |
|||
|
|||
} |
|||
|
|||
|
@ -0,0 +1,24 @@ |
|||
.mcga <- function(tbl) { |
|||
|
|||
x <- colnames(tbl) |
|||
x <- tolower(x) |
|||
x <- gsub("[[:punct:][:space:]]+", "_", x) |
|||
x <- gsub("_+", "_", x) |
|||
x <- gsub("(^_|_$)", "", x) |
|||
x <- gsub("^x_", "", x) |
|||
x <- make.unique(x, sep = "_") |
|||
|
|||
colnames(tbl) <- x |
|||
|
|||
tbl |
|||
|
|||
} |
|||
|
|||
to_num <- function(x) { |
|||
x <- gsub("%", "", x, fixed=TRUE) |
|||
x <- gsub(">", "", x, fixed=TRUE) |
|||
x <- gsub("<", "", x, fixed=TRUE) |
|||
x <- gsub(",", "", x, fixed=TRUE) |
|||
x <- gsub(" ", "", x, fixed=TRUE) |
|||
as.numeric(x) |
|||
} |
@ -0,0 +1,92 @@ |
|||
#' Retrieve WHO/NREVSS Surveillance Data |
|||
#' |
|||
#' The CDC FluView Portal provides in-season and past seasons' national, regional, |
|||
#' and state-level outpatient illness and viral surveillance data from both |
|||
#' ILINet (Influenza-like Illness Surveillance Network) and WHO/NREVSS |
|||
#' (National Respiratory and Enteric Virus Surveillance System). |
|||
#' |
|||
#' This function retrieves current and historical WHO/NREVSS surveillance data for |
|||
#' the identified region. |
|||
#' |
|||
#' @md |
|||
#' @note HHS, Census and State data retrieval is not as "instantaneous" as their ILINet |
|||
#' counterparts.\cr\cr |
|||
#' Also, beginning for the 2015-16 season, reports from public health and clinical |
|||
#' laboratories are presented separately in the weekly influenza update. This is |
|||
#' the reason why a list of data frames is returned. |
|||
#' @param region one of "`national`", "`hhs`", "`census`", or "`state`" |
|||
#' @return list of data frames identified by |
|||
#' - `combined_prior_to_2015_16` |
|||
#' - `public_health_labs` |
|||
#' - `clinical_labs` |
|||
#' @references |
|||
#' - [CDC FluView Portal](https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html) |
|||
#' - [ILINet Portal](https://wwwn.cdc.gov/ilinet/) (Login required) |
|||
#' - [WHO/NREVSS](https://www.cdc.gov/surveillance/nrevss/index.html) |
|||
#' @export |
|||
#' @examples \dontrun{ |
|||
#' national_who <- who_nrevss("national") |
|||
#' hhs_who <- who_nrevss("hhs") |
|||
#' census_who <- who_nrevss("census") |
|||
#' state_who <- who_nrevss("state") |
|||
#' } |
|||
who_nrevss <- function(region=c("national", "hhs", "census", "state")) { |
|||
|
|||
region <- match.arg(tolower(region), c("national", "hhs", "census", "state")) |
|||
|
|||
list( |
|||
AppVersion = "Public", |
|||
DatasourceDT = list(list(ID = 1, Name = "WHO_NREVSS")), |
|||
RegionTypeId = .region_map[region] |
|||
) -> params |
|||
|
|||
params$SubRegionsDT <- switch( |
|||
region, |
|||
national = { list(list(ID=0, Name="")) }, |
|||
hhs = { lapply(1:10, function(i) list(ID=i, Name=as.character(i))) }, |
|||
census = { lapply(1:9, function(i) list(ID=i, Name=as.character(i))) }, |
|||
state = { lapply(1:59, function(i) list(ID=i, Name=as.character(i))) } |
|||
) |
|||
|
|||
seasons <- 37:((unclass(as.POSIXlt(Sys.time()))[["year"]] + 1900) - 1960) |
|||
params$SeasonsDT <- lapply(seasons, function(i) list(ID=i, Name=as.character(i))) |
|||
|
|||
tf <- tempfile(fileext = ".zip") |
|||
td <- tempdir() |
|||
|
|||
on.exit(unlink(tf), TRUE) |
|||
|
|||
httr::POST( |
|||
url = "https://gis.cdc.gov/grasp/flu2/PostPhase02DataDownload", |
|||
httr::user_agent(.cdcfluview_ua), |
|||
httr::add_headers( |
|||
Origin = "https://gis.cdc.gov", |
|||
Accept = "application/json, text/plain, */*", |
|||
Referer = "https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html" |
|||
), |
|||
encode = "json", |
|||
body = params, |
|||
httr::verbose(), |
|||
httr::timeout(60), |
|||
httr::write_disk(tf) |
|||
) -> res |
|||
|
|||
httr::stop_for_status(res) |
|||
|
|||
nm <- unzip(tf, overwrite = TRUE, exdir = td) |
|||
|
|||
lapply(nm, function(x) { |
|||
|
|||
tdf <- read.csv(x, skip = 1, stringsAsFactors=FALSE) |
|||
tdf <- .mcga(tdf) |
|||
class(tdf) <- c("tbl_df", "tbl", "data.frame") |
|||
|
|||
tdf[tdf=="X"] <- NA |
|||
|
|||
tdf |
|||
|
|||
}) -> xdf |
|||
|
|||
setNames(xdf, sub("who_nrevss_", "", tools::file_path_sans_ext(tolower(basename(nm))))) |
|||
|
|||
} |
@ -1,12 +1,11 @@ |
|||
# this is only used during active development phases before/after CRAN releases |
|||
|
|||
# .onAttach <- function(...) { |
|||
# |
|||
# if (!interactive()) return() |
|||
# |
|||
# packageStartupMessage(paste0("cdcfluview is under *active* development. ", |
|||
# "There are *breaking changes*. ", |
|||
# "See https://github.com/hrbrmstr/cdcfluview for info/news.")) |
|||
# |
|||
# } |
|||
# |
|||
.onAttach <- function(...) { |
|||
|
|||
if (!interactive()) return() |
|||
|
|||
packageStartupMessage(paste0("cdcfluview is under *active* development. ", |
|||
"There are *MASSIVE* breaking changes*. ", |
|||
"See https://github.com/hrbrmstr/cdcfluview for info/news.")) |
|||
|
|||
} |
|||
|
@ -1,190 +1,71 @@ |
|||
--- |
|||
title: "" |
|||
pagetitle: "" |
|||
output: rmarkdown::github_document |
|||
--- |
|||
|
|||
```{r, echo=FALSE} |
|||
knitr::opts_chunk$set( |
|||
collapse = TRUE, |
|||
warning = FALSE, |
|||
message = FALSE, |
|||
comment = "#>", |
|||
fig.path = "README_files/README-", |
|||
fig.retina = 2 |
|||
) |
|||
``` |
|||
### :mask: cdcfluview - Retrieve U.S. Flu Season Data from the CDC FluView Portal |
|||
|
|||
[](https://cran.r-project.org/package=cdcfluview) |
|||
[](https://travis-ci.org/hrbrmstr/cdcfluview) |
|||
[](https://codecov.io/github/hrbrmstr/cdcfluview?branch=master) |
|||
|
|||
**NOTE** If there's a particular data set from https://www.cdc.gov/flu/weekly/fluviewinteractive.htm that you want and that isn't in the package, please file it as an issue and be as specific as you can (screen shot if possible). |
|||
# I M P O R T A N T |
|||
|
|||
The CDC migrated to a new non-Flash portal and back-end APIs changed. This is a complete reimagining of the package and --- as such --- all your code is going to break. Please use GitHub issues to identify previous API functionality you would like ported over. There's a [release candidate for 0.5.2](https://github.com/hrbrmstr/cdcfluview/releases/tag/v0.5.2) which uses the old API but it likely to break in the near future given the changes to the hidden API. You can do what with `devtools::install_github("hrbrmstr/cdcfluview", ref="58c172b")`. |
|||
|
|||
All folks providing feedback, code or suggestions will be added to the DESCRIPTION file. Please include how you would prefer to be cited in any issues you file. |
|||
|
|||
If there's a particular data set from https://www.cdc.gov/flu/weekly/fluviewinteractive.htm that you want and that isn't in the package, please file it as an issue and be as specific as you can (screen shot if possible). |
|||
|
|||
# :mask: cdcfluview |
|||
|
|||
----- |
|||
Retrieve U.S. Flu Season Data from the CDC FluView Portal |
|||
|
|||
The U.S. Centers for Disease Control (CDC) maintains a [portal](https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html) for accessing state, regional and national influenza statistics. The portal's Flash interface makes it difficult and time-consuming to select and retrieve influenza data. This package provides functions to access the data provided by the portal's underlying API. |
|||
## Description |
|||
|
|||
The U.S. Centers for Disease Control (CDC) maintains a portal <http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html> for accessing state, regional and national influenza statistics as well as Mortality Surveillance Data. The Flash interface makes it difficult and time-consuming to select and retrieve influenza data. This package provides functions to access the data provided by the portal's underlying API. |
|||
|
|||
## What's Inside The Tin |
|||
|
|||
The following functions are implemented: |
|||
|
|||
- `get_flu_data`: Retrieves state, regional or national influenza statistics from the CDC |
|||
- `get_state_data`: Retrieves state/territory-level influenza statistics from the CDC |
|||
- `get_weekly_flu_report`: Retrieves (high-level) weekly influenza surveillance report from the CDC |
|||
- `get_mortality_surveillance_data` : (fairly self explanatory but also pretty new to the pkg and uses data from: https://www.cdc.gov/flu/weekly/nchs.htm |
|||
- `agd_ipt`: Age Group Distribution of Influenza Positive Tests Reported by Public Health Laboratories |
|||
- `cdcfluview`: Tools to Work with the 'CDC' 'FluView' 'API' |
|||
- `cdc_coverage_map`: Retrieve CDC U.S. Coverage Map |
|||
- `geographic_spread`: State and Territorial Epidemiologists Reports of Geographic Spread of Influenza |
|||
- `hospitalizations`: Laboratory-Confirmed Influenza Hospitalizations |
|||
- `ilinet`: Retrieve ILINet Surveillance Data |
|||
- `ili_weekly_activity_indicators`: Retrieve weekly state-level ILI indicators per-state for a given season |
|||
- `pi_mortality`: Pneumonia and Influenza Mortality Surveillance |
|||
- `state_data_providers`: Retrieve metadat about U.S. State CDC Provider Data |
|||
- `surveillance_areas`: Retrieve a list of valid sub-regions for each surveillance area. |
|||
- `who_nrevss`: Retrieve WHO/NREVSS Surveillance Data |
|||
|
|||
The following data sets are included: |
|||
|
|||
- `hhs_regions` HHS Region Table (a data frame with 59 rows and 4 variables) |
|||
- `census_regions` Census Region Table (a data frame with 51 rows and 2 variables) |
|||
|
|||
### News |
|||
|
|||
- See NEWS |
|||
- Version 0.4.0 - [CRAN release](http://cran.r-project.org/web/packages/cdcfluview) |
|||
- Version 0.4.0.999 released : another fix for the CDC API (for region parameter); added data files for HHS/Census region lookups; added weekly high-level flu report retrieval |
|||
- Version 0.3 released : fix for the CDC API (it changed how year & region params are encoded in the request) |
|||
- Version 0.2.1 released : bumped up `httr` version # requirement in `DESCRIPTION` (via Issue [1](https://github.com/hrbrmstr/cdcfluview/issues/1)) |
|||
- Version 0.2 released : added state-level data retrieval |
|||
- Version 0.1 released |
|||
|
|||
### Installation |
|||
## Installation |
|||
|
|||
```{r eval=FALSE} |
|||
install.packages("cdcfluview") |
|||
# **OR** |
|||
devtools::install_github("hrbrmstr/cdcfluview") |
|||
``` |
|||
|
|||
```{r echo=FALSE, message=FALSE, warning=FALSE, error=FALSE} |
|||
```{r message=FALSE, warning=FALSE, error=FALSE, include=FALSE} |
|||
options(width=120) |
|||
``` |
|||
|
|||
### Usage |
|||
## Usage |
|||
|
|||
```{r state2015, message=FALSE, warning=FALSE, fig.height=10, fig.width=6} |
|||
```{r message=FALSE, warning=FALSE, error=FALSE} |
|||
library(cdcfluview) |
|||
library(ggplot2) |
|||
library(dplyr) |
|||
library(statebins) |
|||
|
|||
# current verison |
|||
packageVersion("cdcfluview") |
|||
|
|||
flu <- get_flu_data("hhs", sub_region=1:10, "ilinet", years=2014) |
|||
glimpse(flu) |
|||
|
|||
state_flu <- get_state_data(years=2015) |
|||
glimpse(state_flu) |
|||
|
|||
gg <- ggplot(flu, aes(x=WEEK, y=`% WEIGHTED ILI`, group=REGION)) |
|||
gg <- gg + geom_line() |
|||
gg <- gg + facet_wrap(~REGION, ncol=2) |
|||
gg <- gg + theme_bw() |
|||
gg |
|||
``` |
|||
|
|||
```{r mortality, message=FALSE, warning=FALSE, fig.height=6, fig.width=10} |
|||
msd <- get_mortality_surveillance_data() |
|||
|
|||
mutate(msd$by_state, ym=as.Date(sprintf("%04d-%02d-1", Year, Week), "%Y-%U-%u")) %>% |
|||
select(state, wk=ym, death_pct=`Percent of Deaths Due to Pneumonia and Influenza`) %>% |
|||
mutate(death_pct=death_pct/100) -> df |
|||
|
|||
gg <- ggplot() + geom_smooth(data=df, aes(wk, death_pct, group=state), |
|||
se=FALSE, color="#2b2b2b", size=0.25) |
|||
|
|||
gb <- ggplot_build(gg) |
|||
|
|||
gb$data[[1]] %>% |
|||
arrange(desc(x)) %>% |
|||
group_by(group) %>% |
|||
slice(1) %>% |
|||
ungroup() %>% |
|||
arrange(desc(y)) %>% |
|||
head(1) -> top |
|||
|
|||
top_state <- sort(unique(msd$by_state$state))[top$group] |
|||
|
|||
gg <- gg + geom_text(data=top, aes(as.Date(x, origin="1970-01-01"), y, label=top_state), |
|||
hjust=1, family="Arial Narrow", size=3, nudge_x=-5, nudge_y=-0.001) |
|||
gg <- gg + scale_x_date(expand=c(0,0)) |
|||
gg <- gg + scale_y_continuous(label=scales::percent) |
|||
gg <- gg + labs(x=NULL, y=NULL, |
|||
title="Percent of In-State Deaths Due to Pneumonia and Pnfluenza (2010-Present)") |
|||
gg <- gg + theme_bw(base_family="Arial Narrow") |
|||
gg <- gg + theme(axis.text.x=element_text(margin=margin(0,0,0,0))) |
|||
gg <- gg + theme(axis.text.y=element_text(margin=margin(0,0,0,0))) |
|||
gg <- gg + theme(axis.ticks=element_blank()) |
|||
gg <- gg + theme(plot.title=element_text(face="bold", size=16)) |
|||
gg |
|||
``` |
|||
|
|||
```{r region, eval=FALSE, include=FALSE, warning=FALSE, error=FALSE, message=FALSE} |
|||
dat <- get_flu_data(region="hhs", |
|||
sub_region=1:10, |
|||
data_source="ilinet", |
|||
years=2000:2014) |
|||
|
|||
dat %>% |
|||
mutate(REGION=factor(REGION, |
|||
levels=unique(REGION), |
|||
labels=c("Boston", "New York", |
|||
"Philadelphia", "Atlanta", |
|||
"Chicago", "Dallas", |
|||
"Kansas City", "Denver", |
|||
"San Francisco", "Seattle"), |
|||
ordered=TRUE)) %>% |
|||
mutate(season_week=ifelse(WEEK>=40, WEEK-40, WEEK), |
|||
season=ifelse(WEEK<40, |
|||
sprintf("%d-%d", YEAR-1, YEAR), |
|||
sprintf("%d-%d", YEAR, YEAR+1))) -> dat |
|||
|
|||
prev_years <- dat %>% filter(season != "2014-2015") |
|||
curr_year <- dat %>% filter(season == "2014-2015") |
|||
|
|||
curr_week <- tail(dat, 1)$season_week |
|||
|
|||
gg <- ggplot() |
|||
gg <- gg + geom_point(data=prev_years, |
|||
aes(x=season_week, y=`% WEIGHTED ILI`, group=season), |
|||
color="#969696", size=1, alpha=0.25) |
|||
gg <- gg + geom_point(data=curr_year, |
|||
aes(x=season_week, y=`% WEIGHTED ILI`, group=season), |
|||
color="red", size=1.25, alpha=1) |
|||
gg <- gg + geom_line(data=curr_year, |
|||
aes(x=season_week, y=`% WEIGHTED ILI`, group=season), |
|||
size=1.25, color="#d7301f") |
|||
gg <- gg + geom_vline(xintercept=curr_week, color="#d7301f", size=0.5, linetype="dashed", alpha=0.5) |
|||
gg <- gg + facet_wrap(~REGION, ncol=3) |
|||
gg <- gg + labs(x=NULL, y="Weighted ILI Index", |
|||
title="ILINet - 1999-2015 year weighted flu index history by CDC region\nWeek Ending Jan 3, 2015 (Red == 2014-2015 season)\n") |
|||
gg <- gg + theme_bw() |
|||
gg <- gg + theme(panel.grid=element_blank()) |
|||
gg <- gg + theme(strip.background=element_blank()) |
|||
gg <- gg + theme(axis.ticks.x=element_blank()) |
|||
gg <- gg + theme(axis.text.x=element_blank()) |
|||
``` |
|||
|
|||
```{r bins, message=FALSE, fig.height=5, fig.width=7} |
|||
gg_s <- state_flu %>% |
|||
filter(weekend=="Jan-02-2016") %>% |
|||
select(state=statename, value=activity_level) %>% |
|||
filter(!(state %in% c("Puerto Rico", "New York City"))) %>% # need to add PR to statebins |
|||
mutate(value=as.numeric(gsub("Level ", "", value))) %>% |
|||
statebins(brewer_pal="RdPu", breaks=4, |
|||
labels=c("Minimal", "Low", "Moderate", "High"), |
|||
legend_position="bottom", legend_title="ILI Activity Level") + |
|||
ggtitle("CDC State FluView (2015-01-03)") |
|||
gg_s |
|||
``` |
|||
### EXAMPLES COMING SOON |
|||
|
|||
### Test Results |
|||
|
|||
```{r message=FALSE} |
|||
library(cdcfluview) |
|||
library(testthat) |
|||
|
|||
date() |
|||
|
|||
test_dir("tests/") |
|||
``` |
|||
## Code of Conduct |
|||
|
|||
Please note that this project is released with a [Contributor Code of Conduct](CONDUCT.md). By participating in this project you agree to abide by its terms. |
@ -1,163 +1,101 @@ |
|||
|
|||
### :mask: cdcfluview - Retrieve U.S. Flu Season Data from the CDC FluView Portal |
|||
|
|||
[](https://cran.r-project.org/package=cdcfluview) [](https://travis-ci.org/hrbrmstr/cdcfluview) [](https://codecov.io/github/hrbrmstr/cdcfluview?branch=master) |
|||
|
|||
**NOTE** If there's a particular data set from <https://www.cdc.gov/flu/weekly/fluviewinteractive.htm> that you want and that isn't in the package, please file it as an issue and be as specific as you can (screen shot if possible). |
|||
|
|||
------------------------------------------------------------------------ |
|||
|
|||
The U.S. Centers for Disease Control (CDC) maintains a [portal](https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html) for accessing state, regional and national influenza statistics. The portal's Flash interface makes it difficult and time-consuming to select and retrieve influenza data. This package provides functions to access the data provided by the portal's underlying API. |
|||
[](https://cran.r-project.org/package=cdcfluview) |
|||
[](https://travis-ci.org/hrbrmstr/cdcfluview) |
|||
[](https://codecov.io/github/hrbrmstr/cdcfluview?branch=master) |
|||
|
|||
I M P O R T A N T |
|||
================= |
|||
|
|||
The CDC migrated to a new non-Flash portal and back-end APIs changed. |
|||
This is a complete reimagining of the package and โ as such โ all your |
|||
code is going to break. Please use GitHub issues to identify previous |
|||
API functionality you would like ported over. Thereโs a [release |
|||
candidate for |
|||
0.5.2](https://github.com/hrbrmstr/cdcfluview/releases/tag/v0.5.2) which |
|||
uses the old API but it likely to break in the near future given the |
|||
changes to the hidden API. You can do what with |
|||
`devtools::install_github("hrbrmstr/cdcfluview", ref="58c172b")`. |
|||
|
|||
All folks providing feedback, code or suggestions will be added to the |
|||
DESCRIPTION file. Please include how you would prefer to be cited in any |
|||
issues you file. |
|||
|
|||
If thereโs a particular data set from |
|||
<https://www.cdc.gov/flu/weekly/fluviewinteractive.htm> that you want |
|||
and that isnโt in the package, please file it as an issue and be as |
|||
specific as you can (screen shot if possible). |
|||
|
|||
:mask: cdcfluview |
|||
================= |
|||
|
|||
Retrieve U.S. Flu Season Data from the CDC FluView Portal |
|||
|
|||
Description |
|||
----------- |
|||
|
|||
The U.S. Centers for Disease Control (CDC) maintains a portal |
|||
<http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html> for accessing |
|||
state, regional and national influenza statistics as well as Mortality |
|||
Surveillance Data. The Flash interface makes it difficult and |
|||
time-consuming to select and retrieve influenza data. This package |
|||
provides functions to access the data provided by the portalโs |
|||
underlying API. |
|||
|
|||
Whatโs Inside The Tin |
|||
--------------------- |
|||
|
|||
The following functions are implemented: |
|||
|
|||
- `get_flu_data`: Retrieves state, regional or national influenza statistics from the CDC |
|||
- `get_state_data`: Retrieves state/territory-level influenza statistics from the CDC |
|||
- `get_weekly_flu_report`: Retrieves (high-level) weekly influenza surveillance report from the CDC |
|||
- `get_mortality_surveillance_data` : (fairly self explanatory but also pretty new to the pkg and uses data from: <https://www.cdc.gov/flu/weekly/nchs.htm> |
|||
- `agd_ipt`: Age Group Distribution of Influenza Positive Tests |
|||
Reported by Public Health Laboratories |
|||
- `cdcfluview`: Tools to Work with the โCDCโ โFluViewโ โAPIโ |
|||
- `cdc_coverage_map`: Retrieve CDC U.S. Coverage Map |
|||
- `geographic_spread`: State and Territorial Epidemiologists Reports |
|||
of Geographic Spread of Influenza |
|||
- `hospitalizations`: Laboratory-Confirmed Influenza Hospitalizations |
|||
- `ilinet`: Retrieve ILINet Surveillance Data |
|||
- `ili_weekly_activity_indicators`: Retrieve weekly state-level ILI |
|||
indicators per-state for a given season |
|||
- `pi_mortality`: Pneumonia and Influenza Mortality Surveillance |
|||
- `state_data_providers`: Retrieve metadat about U.S. State CDC |
|||
Provider Data |
|||
- `surveillance_areas`: Retrieve a list of valid sub-regions for each |
|||
surveillance area. |
|||
- `who_nrevss`: Retrieve WHO/NREVSS Surveillance Data |
|||
|
|||
The following data sets are included: |
|||
|
|||
- `hhs_regions` HHS Region Table (a data frame with 59 rows and 4 variables) |
|||
- `census_regions` Census Region Table (a data frame with 51 rows and 2 variables) |
|||
|
|||
### News |
|||
- `hhs_regions` HHS Region Table (a data frame with 59 rows and 4 |
|||
variables) |
|||
- `census_regions` Census Region Table (a data frame with 51 rows and |
|||
2 variables) |
|||
|
|||
- See NEWS |
|||
- Version 0.4.0 - [CRAN release](http://cran.r-project.org/web/packages/cdcfluview) |
|||
- Version 0.4.0.999 released : another fix for the CDC API (for region parameter); added data files for HHS/Census region lookups; added weekly high-level flu report retrieval |
|||
- Version 0.3 released : fix for the CDC API (it changed how year & region params are encoded in the request) |
|||
- Version 0.2.1 released : bumped up `httr` version \# requirement in `DESCRIPTION` (via Issue [1](https://github.com/hrbrmstr/cdcfluview/issues/1)) |
|||
- Version 0.2 released : added state-level data retrieval |
|||
- Version 0.1 released |
|||
|
|||
### Installation |
|||
Installation |
|||
------------ |
|||
|
|||
``` r |
|||
install.packages("cdcfluview") |
|||
# **OR** |
|||
devtools::install_github("hrbrmstr/cdcfluview") |
|||
``` |
|||
|
|||
### Usage |
|||
Usage |
|||
----- |
|||
|
|||
``` r |
|||
library(cdcfluview) |
|||
library(ggplot2) |
|||
library(dplyr) |
|||
library(statebins) |
|||
|
|||
# current verison |
|||
packageVersion("cdcfluview") |
|||
#> [1] '0.5.2' |
|||
|
|||
flu <- get_flu_data("hhs", sub_region=1:10, "ilinet", years=2014) |
|||
glimpse(flu) |
|||
#> Observations: 530 |
|||
#> Variables: 15 |
|||
#> $ REGION TYPE <chr> "HHS Regions", "HHS Regions", "HHS Regions", "HHS Regions", "HHS Regions", "HHS Regions",... |
|||
#> $ REGION <chr> "Region 1", "Region 2", "Region 3", "Region 4", "Region 5", "Region 6", "Region 7", "Regi... |
|||
#> $ YEAR <int> 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014,... |
|||
#> $ WEEK <int> 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 4... |
|||
#> $ % WEIGHTED ILI <dbl> 0.830610, 1.795830, 1.162260, 0.828920, 0.744546, 1.604740, 0.697022, 0.635856, 1.793140,... |
|||
#> $ %UNWEIGHTED ILI <dbl> 0.681009, 1.649790, 1.321020, 0.911243, 1.013950, 1.647270, 0.437619, 0.813397, 1.501530,... |
|||
#> $ AGE 0-4 <int> 101, 869, 395, 331, 358, 446, 50, 76, 310, 22, 109, 837, 403, 355, 338, 540, 57, 57, 335,... |
|||
#> $ AGE 25-49 <int> 44, 363, 455, 187, 181, 410, 43, 49, 220, 7, 37, 349, 465, 244, 182, 451, 56, 87, 225, 20... |
|||
#> $ AGE 25-64 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N... |
|||
#> $ AGE 5-24 <int> 185, 757, 627, 530, 400, 636, 98, 154, 577, 30, 199, 676, 669, 772, 443, 741, 124, 148, 5... |
|||
#> $ AGE 50-64 <int> 13, 157, 126, 80, 80, 111, 15, 19, 110, 1, 24, 151, 130, 74, 105, 168, 18, 23, 118, 10, 2... |
|||
#> $ AGE 65 <int> 9, 107, 89, 46, 64, 77, 14, 8, 112, 1, 17, 115, 75, 64, 48, 97, 14, 12, 103, 3, 9, 114, 8... |
|||
#> $ ILITOTAL <int> 352, 2253, 1692, 1174, 1083, 1680, 220, 306, 1329, 61, 386, 2128, 1742, 1509, 1116, 1997,... |
|||
#> $ NUM. OF PROVIDERS <int> 146, 276, 234, 299, 261, 226, 84, 119, 237, 55, 150, 265, 232, 306, 271, 235, 84, 115, 24... |
|||
#> $ TOTAL PATIENTS <int> 51688, 136563, 128083, 128835, 106810, 101987, 50272, 37620, 88510, 11172, 51169, 131884,... |
|||
|
|||
state_flu <- get_state_data(years=2015) |
|||
glimpse(state_flu) |
|||
#> Observations: 2,807 |
|||
#> Variables: 8 |
|||
#> $ statename <chr> "Virgin Islands", "District of Columbia", "Virgin Islands", "District of Columbia", "V... |
|||
#> $ url <chr> "http://doh.vi.gov/", "http://doh.dc.gov/page/influenza-season", "http://doh.vi.gov/",... |
|||
#> $ website <chr> "Influenza", "Influenza Information", "Influenza", "Influenza Information", "Influenza... |
|||
#> $ activity_level <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,... |
|||
#> $ activity_level_label <chr> "Insufficient Data", "Insufficient Data", "Insufficient Data", "Insufficient Data", "I... |
|||
#> $ weekend <chr> "Oct-10-2015", "Oct-17-2015", "Oct-17-2015", "Oct-24-2015", "Oct-24-2015", "Oct-31-201... |
|||
#> $ season <chr> "2015-16", "2015-16", "2015-16", "2015-16", "2015-16", "2015-16", "2015-16", "2015-16"... |
|||
#> $ weeknumber <int> 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51... |
|||
|
|||
gg <- ggplot(flu, aes(x=WEEK, y=`% WEIGHTED ILI`, group=REGION)) |
|||
gg <- gg + geom_line() |
|||
gg <- gg + facet_wrap(~REGION, ncol=2) |
|||
gg <- gg + theme_bw() |
|||
gg |
|||
``` |
|||
|
|||
<img src="README_files/README-state2015-1.png" width="576" /> |
|||
|
|||
``` r |
|||
msd <- get_mortality_surveillance_data() |
|||
|
|||
mutate(msd$by_state, ym=as.Date(sprintf("%04d-%02d-1", Year, Week), "%Y-%U-%u")) %>% |
|||
select(state, wk=ym, death_pct=`Percent of Deaths Due to Pneumonia and Influenza`) %>% |
|||
mutate(death_pct=death_pct/100) -> df |
|||
|
|||
gg <- ggplot() + geom_smooth(data=df, aes(wk, death_pct, group=state), |
|||
se=FALSE, color="#2b2b2b", size=0.25) |
|||
|
|||
gb <- ggplot_build(gg) |
|||
|
|||
gb$data[[1]] %>% |
|||
arrange(desc(x)) %>% |
|||
group_by(group) %>% |
|||
slice(1) %>% |
|||
ungroup() %>% |
|||
arrange(desc(y)) %>% |
|||
head(1) -> top |
|||
|
|||
top_state <- sort(unique(msd$by_state$state))[top$group] |
|||
|
|||
gg <- gg + geom_text(data=top, aes(as.Date(x, origin="1970-01-01"), y, label=top_state), |
|||
hjust=1, family="Arial Narrow", size=3, nudge_x=-5, nudge_y=-0.001) |
|||
gg <- gg + scale_x_date(expand=c(0,0)) |
|||
gg <- gg + scale_y_continuous(label=scales::percent) |
|||
gg <- gg + labs(x=NULL, y=NULL, |
|||
title="Percent of In-State Deaths Due to Pneumonia and Pnfluenza (2010-Present)") |
|||
gg <- gg + theme_bw(base_family="Arial Narrow") |
|||
gg <- gg + theme(axis.text.x=element_text(margin=margin(0,0,0,0))) |
|||
gg <- gg + theme(axis.text.y=element_text(margin=margin(0,0,0,0))) |
|||
gg <- gg + theme(axis.ticks=element_blank()) |
|||
gg <- gg + theme(plot.title=element_text(face="bold", size=16)) |
|||
gg |
|||
``` |
|||
|
|||
<img src="README_files/README-mortality-1.png" width="960" /> |
|||
## [1] '0.7.0' |
|||
|
|||
``` r |
|||
gg_s <- state_flu %>% |
|||
filter(weekend=="Jan-02-2016") %>% |
|||
select(state=statename, value=activity_level) %>% |
|||
filter(!(state %in% c("Puerto Rico", "New York City"))) %>% # need to add PR to statebins |
|||
mutate(value=as.numeric(gsub("Level ", "", value))) %>% |
|||
statebins(brewer_pal="RdPu", breaks=4, |
|||
labels=c("Minimal", "Low", "Moderate", "High"), |
|||
legend_position="bottom", legend_title="ILI Activity Level") + |
|||
ggtitle("CDC State FluView (2015-01-03)") |
|||
gg_s |
|||
``` |
|||
### EXAMPLES COMING SOON |
|||
|
|||
<img src="README_files/README-bins-1.png" width="672" /> |
|||
Code of Conduct |
|||
--------------- |
|||
|
|||
### Test Results |
|||
|
|||
``` r |
|||
library(cdcfluview) |
|||
library(testthat) |
|||
|
|||
date() |
|||
#> [1] "Tue Mar 14 09:59:29 2017" |
|||
|
|||
test_dir("tests/") |
|||
#> testthat results ======================================================================================================== |
|||
#> OK: 2 SKIPPED: 0 FAILED: 0 |
|||
#> |
|||
#> DONE =================================================================================================================== |
|||
``` |
|||
Please note that this project is released with a [Contributor Code of |
|||
Conduct](CONDUCT.md). By participating in this project you agree to |
|||
abide by its terms. |
|||
|
@ -0,0 +1,22 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/agd-ipt.r |
|||
\name{agd_ipt} |
|||
\alias{agd_ipt} |
|||
\title{Age Group Distribution of Influenza Positive Tests Reported by Public Health Laboratories} |
|||
\usage{ |
|||
agd_ipt() |
|||
} |
|||
\description{ |
|||
Retrieves the age group distribution of influenza positive tests that are reported by |
|||
public health laboratories by influenza virus type and subtype/lineage. Laboratory data |
|||
from multiple seasons and different age groups is provided. |
|||
} |
|||
\examples{ |
|||
\dontrun{ |
|||
agd_ipt() |
|||
} |
|||
} |
|||
\references{ |
|||
- [CDC FluView Portal](https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html) |
|||
- [AGD IPT Portal](https://gis.cdc.gov/grasp/fluview/flu_by_age_virus.html) |
|||
} |
@ -0,0 +1,32 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/coverage-map.r |
|||
\name{cdc_coverage_map} |
|||
\alias{cdc_coverage_map} |
|||
\title{Retrieve CDC U.S. Coverage Map} |
|||
\usage{ |
|||
cdc_coverage_map() |
|||
} |
|||
\description{ |
|||
The CDC FluView application uses a composite basemap of coverage areas |
|||
within the United States that elides and scales Alaska, Hawaii and |
|||
Puerto Rico and provides elided and scaled breakouts for New York City |
|||
and the District of Columbia.\cr |
|||
\cr |
|||
The basemap provides polygon identifiers by: |
|||
\cr |
|||
\itemize{ |
|||
\item \code{STATE_FIPS} |
|||
\item \code{STATE_ABBR} |
|||
\item \code{STATE_NAME} |
|||
\item \code{HHS_Region} |
|||
\item \code{FIPSTXT}) |
|||
\cr |
|||
This function retrieves the shapefile, projects to EPSG:5069 and |
|||
returns it as an \code{sf} (simple features) object. |
|||
} |
|||
} |
|||
\examples{ |
|||
\dontrun{ |
|||
plot(cdc_coverage_map()) |
|||
} |
|||
} |
@ -1,18 +0,0 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/cdcfluview-package.R |
|||
\docType{package} |
|||
\name{cdcfluview} |
|||
\alias{cdcfluview} |
|||
\alias{cdcfluview-package} |
|||
\title{Retrieve Flu Season Data from the CDC FluView Portal} |
|||
\description{ |
|||
The U.S. Centers for Disease Control (CDC) maintains a portal |
|||
\code{https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html} for |
|||
accessing state, regional and national influenza statistics as well as |
|||
Mortality Surveillance Data. The Flash interface makes it difficult |
|||
and time-consuming to select and retrieve influenza data. This package |
|||
provides functions to access the data provided by portal's underlying API. |
|||
} |
|||
\author{ |
|||
Bob Rudis (bob@rud.is) |
|||
} |
@ -0,0 +1,16 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/geographic-spread.R |
|||
\name{geographic_spread} |
|||
\alias{geographic_spread} |
|||
\title{State and Territorial Epidemiologists Reports of Geographic Spread of Influenza} |
|||
\usage{ |
|||
geographic_spread() |
|||
} |
|||
\description{ |
|||
State and Territorial Epidemiologists Reports of Geographic Spread of Influenza |
|||
} |
|||
\examples{ |
|||
\dontrun{ |
|||
geographic_spread() |
|||
} |
|||
} |
@ -0,0 +1,32 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/hospital.r |
|||
\name{hospitalizations} |
|||
\alias{hospitalizations} |
|||
\title{Laboratory-Confirmed Influenza Hospitalizations} |
|||
\usage{ |
|||
hospitalizations(surveillance_area = c("flusurv", "eip", "ihsp"), |
|||
region = "all") |
|||
} |
|||
\arguments{ |
|||
\item{surveillance_area}{one of "\code{flusurv}", "\code{eip}", or "\code{ihsp}"} |
|||
|
|||
\item{region}{Using "\code{all}" mimics selecting "Entire Network" from the |
|||
CDC FluView application drop down. Individual regions for each |
|||
surveillance area can also be selected. Use \code{\link[=surveillance_areas]{surveillance_areas()}} to |
|||
see a list of valid sub-regions for each surveillance area.} |
|||
} |
|||
\description{ |
|||
Laboratory-Confirmed Influenza Hospitalizations |
|||
} |
|||
\examples{ |
|||
\dontrun{ |
|||
hosp_fs <- hospitalizations("flusurv") |
|||
hosp_eip <- hospitalizations("eip") |
|||
hosp_ihsp <- hospitalizations("ihsp") |
|||
} |
|||
} |
|||
\references{ |
|||
\itemize{ |
|||
\item \href{https://gis.cdc.gov/GRASP/Fluview/FluHospRates.html}{Hospital Portal} |
|||
} |
|||
} |
@ -0,0 +1,39 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/ili-weekly-state.r |
|||
\name{ili_weekly_activity_indicators} |
|||
\alias{ili_weekly_activity_indicators} |
|||
\title{Retrieve weekly state-level ILI indicators per-state for a given season} |
|||
\usage{ |
|||
ili_weekly_activity_indicators(season_start_year) |
|||
} |
|||
\arguments{ |
|||
\item{season_start_year}{numeric; start year for flu season (e.g. 2017 for 2017-2018 season)} |
|||
} |
|||
\description{ |
|||
Retrieve weekly state-level ILI indicators per-state for a given season |
|||
} |
|||
\note{ |
|||
These statistics use the proportion of outpatient visits to healthcare providers |
|||
for influenza-like illness to measure the ILI activity level within a state. They do |
|||
not, however, measure the extent of geographic spread of flu within a state. Therefore, |
|||
outbreaks occurring in a single city could cause the state to display high activity levels.\cr |
|||
\cr |
|||
Data collected in ILINet may disproportionately represent certain populations within |
|||
a state, and therefore may not accurately depict the full picture of influenza activity |
|||
for the whole state.\cr |
|||
\cr |
|||
All summary statistics are based on either data collected in ILINet, or reports from |
|||
state and territorial epidemiologists. Differences in the summary data presented by |
|||
CDC and state health departments likely represent differing levels of data completeness |
|||
with data presented by the state likely being the more complete. |
|||
} |
|||
\examples{ |
|||
\dontrun{ |
|||
ili_weekly_activity_indicators(2016) |
|||
} |
|||
} |
|||
\references{ |
|||
\itemize{ |
|||
\item \href{https://gis.cdc.gov/grasp/fluview/main.html}{ILI Activity Indicator Map Portal} |
|||
} |
|||
} |
@ -0,0 +1,40 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/ilinet.r |
|||
\name{ilinet} |
|||
\alias{ilinet} |
|||
\title{Retrieve ILINet Surveillance Data} |
|||
\usage{ |
|||
ilinet(region = c("national", "hhs", "census", "state")) |
|||
} |
|||
\arguments{ |
|||
\item{region}{one of "\code{national}", "\code{hhs}", "\code{census}", or "\code{state}"} |
|||
} |
|||
\description{ |
|||
The CDC FluView Portal provides in-season and past seasons' national, regional, |
|||
and state-level outpatient illness and viral surveillance data from both |
|||
ILINet (Influenza-like Illness Surveillance Network) and WHO/NREVSS |
|||
(National Respiratory and Enteric Virus Surveillance System). |
|||
} |
|||
\details{ |
|||
This function retrieves current and historical ILINet surveillance data for |
|||
the identified region. |
|||
} |
|||
\examples{ |
|||
national_ili <- ilinet("national") |
|||
hhs_ili <- ilinet("hhs") |
|||
census_ili <- ilinet("census") |
|||
state_ili <- ilinet("state") |
|||
\dontrun{ |
|||
library(purrr) |
|||
map_df( |
|||
c("national", "hhs", "census", "state"), |
|||
~ilinet(.x) \%>\% readr::type_convert()) |
|||
} |
|||
} |
|||
\references{ |
|||
\itemize{ |
|||
\item \href{https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html}{CDC FluView Portal} |
|||
\item \href{https://wwwn.cdc.gov/ilinet/}{ILINet Portal} (Login required) |
|||
\item \href{https://www.cdc.gov/surveillance/nrevss/index.html}{WHO/NREVSS} |
|||
} |
|||
} |
@ -0,0 +1,54 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/pi-mortality.r |
|||
\name{pi_mortality} |
|||
\alias{pi_mortality} |
|||
\title{Pneumonia and Influenza Mortality Surveillance} |
|||
\usage{ |
|||
pi_mortality(coverage_area = c("national", "state", "region")) |
|||
} |
|||
\arguments{ |
|||
\item{coverage_area}{coverage area for data (national, state or region)} |
|||
} |
|||
\description{ |
|||
The National Center for Health Statistics (NCHS) collects and disseminates the Nation's |
|||
official vital statistics. NCHS collects death certificate data from state vital |
|||
statistics offices for virtually all deaths occurring in the United States. Pneumonia |
|||
and influenza (P&I) deaths are identified based on ICD-10 |
|||
multiple cause of death codes.\cr |
|||
\cr |
|||
NCHS Mortality Surveillance System data are presented by the week the death occurred |
|||
at the national, state, and HHS Region levels. Data on the percentage of deaths due |
|||
to P&I on a national level are released two weeks after the week of death to allow |
|||
for collection of enough data to produce a stable percentage. States and HHS regions |
|||
with less than 20% of the expected total deaths (average number of total deaths |
|||
reported by week during 2008-2012) will be marked as insufficient data. Collection |
|||
of complete data is not expected at the time of initial report, and a reliable |
|||