From f1d982ea950969bcf7acca3233059f6735db51c6 Mon Sep 17 00:00:00 2001 From: Bob Rudis Date: Sat, 10 Jan 2015 20:26:53 -0500 Subject: [PATCH] initial commit --- .Rbuildignore | 4 + .gitignore | 7 ++ .travis.yml | 23 ++++++ DESCRIPTION | 18 +++++ LICENSE | 2 + NAMESPACE | 4 + R/cdcfluview-package.R | 6 ++ R/cdcfluview.R | 87 +++++++++++++++++++++ README.Rmd | 67 ++++++++++++++++ README.md | 83 ++++++++++++++++++++ .../figure-markdown_github/unnamed-chunk-4-1.png | Bin 0 -> 65479 bytes cdcfluview.Rproj | 21 +++++ man/cdcfluview.Rd | 14 ++++ man/get_flu_data.Rd | 36 +++++++++ tests/test-all.R | 2 + tests/testthat/test-cdcfluview.R | 6 ++ 16 files changed, 380 insertions(+) create mode 100644 .Rbuildignore create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 DESCRIPTION create mode 100644 LICENSE create mode 100644 NAMESPACE create mode 100644 R/cdcfluview-package.R create mode 100644 R/cdcfluview.R create mode 100644 README.Rmd create mode 100644 README.md create mode 100644 README_files/figure-markdown_github/unnamed-chunk-4-1.png create mode 100644 cdcfluview.Rproj create mode 100644 man/cdcfluview.Rd create mode 100644 man/get_flu_data.Rd create mode 100644 tests/test-all.R create mode 100644 tests/testthat/test-cdcfluview.R diff --git a/.Rbuildignore b/.Rbuildignore new file mode 100644 index 0000000..23a3633 --- /dev/null +++ b/.Rbuildignore @@ -0,0 +1,4 @@ +^.*\.Rproj$ +^\.Rproj\.user$ +^\.travis\.yml$ +^.*md$ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..60332de --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.Rproj.user +.Rhistory +.RData +.Rproj +src/*.o +src/*.so +src/*.dll diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..cf8c99a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,23 @@ +language: c + +before_install: + - curl -OL http://raw.github.com/craigcitro/r-travis/master/scripts/travis-tool.sh + - chmod 755 ./travis-tool.sh + - ./travis-tool.sh bootstrap + +install: + - ./travis-tool.sh install_github plyr + - ./travis-tool.sh install_deps + +script: ./travis-tool.sh run_tests + +on_failure: + - ./travis-tool.sh dump_logs + +branches: + except: + - /-expt$/ + notifications: + email: + on_success: change + on_failure: change diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..df397e9 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,18 @@ +Package: cdcfluview +Type: Package +Title: cdcfluview is package that retrieves the data behind the CDC's FluView portal +Version: 0.1 +Date: 2015-01-10 +Author: Bob Rudis (@hrbrmstr) +Maintainer: Bob Rudis +Description: The CDC's FluView is a Flash portal and the only way to get flu season + data is to use GUI controls, making it tedious to retrieve updates. This package + uses the same API the portal does to programmatically retrieve data. +URL: http://github.com/hrbrmstr/cdcfluview +BugReports: https://github.com/hrbrmstr/cdcfluview/issues +License: MIT + file LICENSE +Suggests: + testthat +Depends: + R (>= 3.0.0), + httr (>= 0.3.0) \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1b30c7e --- /dev/null +++ b/LICENSE @@ -0,0 +1,2 @@ +YEAR: 2015 +COPYRIGHT HOLDER: Bob Rudis diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..eac7d32 --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,4 @@ +# Generated by roxygen2 (4.1.0): do not edit by hand + +export(get_flu_data) +import(httr) diff --git a/R/cdcfluview-package.R b/R/cdcfluview-package.R new file mode 100644 index 0000000..6149a32 --- /dev/null +++ b/R/cdcfluview-package.R @@ -0,0 +1,6 @@ +#' A package to retrive data behind the CDC FluView portal +#' @name cdcfluview +#' @docType package +#' @author Bob Rudis (@@hrbrmstr) +#' @import httr +NULL diff --git a/R/cdcfluview.R b/R/cdcfluview.R new file mode 100644 index 0000000..e161692 --- /dev/null +++ b/R/cdcfluview.R @@ -0,0 +1,87 @@ +# http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html + +#' Retrieve CDC flu data +#' +#' Uses the data source from the CDC FluView \url{http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html} +#' and provides flu reporting data as either a single data frame or a list +#' of data frames (depending on whether either WHO NREVSS or ILINet - or both - is chosen) +#' +#' @param region one of "\code{hhs}", "\code{census}", "\code{national}" +#' @param sub_region depends on the \code{region_type}.\cr +#' For "\code{national}", the \code{sub_region} should be \code{NA}.\cr +#' For "\code{hhs}", should be a vector between \code{1:10}.\cr +#' For "\code{census}", should be a vector between \code{1:9} +#' @param data_source either of "\code{who}" (for WHO NREVSS) or "\code{ilinet}" or "\code{all}" (for both) +#' @param years a vector of years to retrieve data for (i.e. \code{2014} for CDC flu seasn 2014-2015) +#' @return If only a single \code{data_source} is specified, then a single \code{data.frame} is +#' returned, otherwise a named list with each \code{data.frame} is returned. +#' @export +#' @examples \dontrun{ +#' flu <- get_flu_data("hhs", 1:10, c("who", "ilinet"), years=2000:2014) +#' } +get_flu_data <- function(region="hhs", sub_region=1:10, + data_source="ilinet", years=2014) { + + region <- tolower(region) + data_source <- tolower(data_source) + + if (!(region %in% c("hhs", "census", "national"))) + stop("Error: region must be one of hhs, census or national") + + if (length(region) != 1) + stop("Error: can only select one region") + + if (region=="national") sub_region = "" + + if ((region=="hhs") && !all(sub_region %in% 1:10)) + stop("Error: sub_region values must fall between 1:10 when region is 'hhs'") + + if ((region=="census") && !all(sub_region %in% 1:19)) + stop("Error: sub_region values must fall between 1:10 when region is 'census'") + + if (!all(data_source %in% c("who", "ilinet"))) + stop("Error: data_source must be either 'who', 'ilinet' or both") + + if (any(years < 1997)) + stop("Error: years should be > 1997") + + years <- years - 1960 + + reg <- as.numeric(c("hhs"=1, "census"=2, "national"=3)[[region]]) + data_source <- gsub("who", "WHO_NREVSS", data_source) + data_source <- gsub("ilinet", "ILINet", data_source) + + params <- list(SubRegionsList=sub_region, + DataSources=data_source, + RegionID=reg, + SeasonsList=years) + + out_file <- tempfile(fileext=".zip") + + tmp <- POST("http://gis.cdc.gov/grasp/fluview/FluViewPhase2CustomDownload.ashx", + body=params, + write_disk(out_file)) + + stop_for_status(tmp) + + if (!(file.exists(out_file))) + stop("Error: cannot process downloaded data") + + out_dir <- tempdir() + + files <- unzip(out_file, exdir=out_dir, overwrite=TRUE) + + file_list <- lapply(files, function(x) { + ct <- ifelse(grepl("who", x, ignore.case=TRUE), 0, 1) + read.csv(x, header=TRUE, skip=ct, stringsAsFactors=FALSE) + }) + + names(file_list) <- substr(basename(files), 1, 3) + + if (length(file_list) == 1) { + return(file_list[[1]]) + } else { + return(file_list) + } + +} diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..3022885 --- /dev/null +++ b/README.Rmd @@ -0,0 +1,67 @@ +--- +title: "README" +author: "Bob Rudis" +date: January 10, 2015 +output: + md_document: + variant: markdown_github +--- + +The CDC's FluView is a Flash portal and the only way to get flu season +data is to use GUI controls, making it tedious to retrieve updates. This package +uses the same API the portal does to programmatically retrieve data. + +The following functions are implemented: + +- `get_flu_data` : retrieve flu data + +The following data sets are included: + +### News + +- Version 0.1 released + +### Installation + +```{r eval=FALSE} +devtools::install_github("hrbrmstr/cdcfluview") +``` + +```{r echo=FALSE, message=FALSE, warning=FALSE, error=FALSE} +options(width=120) +``` + +### Usage + +```{r} +library(cdcfluview) +library(ggplot2) + +# current verison +packageVersion("cdcfluview") + +flu <- get_flu_data("hhs", sub_region=1:10, "ilinet", years=2014) + +dplyr::glimpse(flu) + +gg <- ggplot(flu, aes(x=WEEK, y=X..WEIGHTED.ILI, group=REGION)) +gg <- gg + geom_line() +gg <- gg + facet_wrap(~REGION, ncol=2) +gg <- gg + theme_bw() +``` + +```{r echo=FALSE, fig.height=10, fig.width=6} +gg +``` + +### Test Results + +```{r} +library(cdcfluview) +library(testthat) + +date() + +test_dir("tests/") +``` + diff --git a/README.md b/README.md new file mode 100644 index 0000000..72b98ab --- /dev/null +++ b/README.md @@ -0,0 +1,83 @@ +The CDC's FluView is a Flash portal and the only way to get flu season data is to use GUI controls, making it tedious to retrieve updates. This package uses the same API the portal does to programmatically retrieve data. + +The following functions are implemented: + +- `get_flu_data` : retrieve flu data + +The following data sets are included: + +### News + +- Version 0.1 released + +### Installation + +``` r +devtools::install_github("hrbrmstr/cdcfluview") +``` + +### Usage + +``` r +library(cdcfluview) +``` + + ## Loading required package: httr + +``` r +library(ggplot2) + +# current verison +packageVersion("cdcfluview") +``` + + ## [1] '0.1' + +``` r +flu <- get_flu_data("hhs", sub_region=1:10, "ilinet", years=2014) + +dplyr::glimpse(flu) +``` + + ## Variables: + ## $ 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... + ## $ ILITOTAL (int) 352, 2239, 1689, 1173, 1083, 1843, 217, 348, 1201, 61, 386, 2108, 1735, 1501, 1117, 2163,... + ## $ TOTAL.PATIENTS (int) 50896, 134096, 128589, 127408, 106896, 103717, 50032, 36991, 85312, 10868, 50711, 129275,... + ## $ NUM..OF.PROVIDERS (int) 142, 253, 242, 299, 266, 236, 83, 117, 227, 53, 148, 242, 238, 305, 277, 246, 83, 114, 24... + ## $ X..WEIGHTED.ILI (dbl) 0.8825503, 1.8170454, 1.2055377, 0.8357537, 0.7384711, 1.8292926, 0.6895413, 0.6733888, 1... + ## $ X.UNWEIGHTED.ILI (dbl) 0.6916064, 1.6696993, 1.3134872, 0.9206643, 1.0131343, 1.7769507, 0.4337224, 0.9407694, 1... + ## $ AGE.0.4 (int) 101, 872, 395, 330, 358, 465, 50, 82, 261, 22, 109, 837, 404, 353, 339, 560, 57, 58, 281,... + ## $ AGE.5.24 (int) 185, 758, 627, 530, 400, 710, 97, 152, 532, 30, 199, 675, 664, 763, 443, 807, 124, 146, 5... + ## $ AGE.25.64 (lgl) NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N... + ## $ AGE.25.49 (int) 44, 351, 451, 187, 181, 469, 42, 87, 202, 7, 37, 338, 461, 248, 182, 509, 54, 87, 216, 20... + ## $ AGE.50.64 (int) 13, 150, 126, 80, 80, 121, 15, 19, 101, 1, 24, 148, 131, 73, 105, 187, 17, 23, 117, 10, 2... + ## $ AGE.65 (int) 9, 108, 90, 46, 64, 78, 13, 8, 105, 1, 17, 110, 75, 64, 48, 100, 11, 12, 97, 3, 8, 108, 8... + +``` r +gg <- ggplot(flu, aes(x=WEEK, y=X..WEIGHTED.ILI, group=REGION)) +gg <- gg + geom_line() +gg <- gg + facet_wrap(~REGION, ncol=2) +gg <- gg + theme_bw() +``` + +![](README_files/figure-markdown_github/unnamed-chunk-4-1.png) + +### Test Results + +``` r +library(cdcfluview) +library(testthat) + +date() +``` + + ## [1] "Sat Jan 10 20:25:05 2015" + +``` r +test_dir("tests/") +``` + + ## basic functionality : diff --git a/README_files/figure-markdown_github/unnamed-chunk-4-1.png b/README_files/figure-markdown_github/unnamed-chunk-4-1.png new file mode 100644 index 0000000000000000000000000000000000000000..49fb31e99c2eb334f9957f9b5b52cfe8f8c1fcbf GIT binary patch literal 65479 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 uYA+`TqFg4*sXq_wGK2G4`sCQ5P=0t@xq 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%0AYm*_758M)}$VHol-_1n5m)n_<@l1 zox*6@cIHdDv@5gh-}aY~)Yza~=H2A9UTTn6#Dm1x$b$MxTy1w)i>6=a=+zRA@l))V zo|e!^-ZjD2XGAj}?S=bhmPp+e8qimu{><#86Mvp+SkRV5(m)*5^)$7g6C_FxhKkIb zLt89;YJtzHKmQ`zR6XO5e1-HHDz0<*BF9o(ky!mz7Cr2fgf!(VKBbc|jseRBQxsAk z&ivvzl7UOkTf^|0;UJ=}JoD(80AZE2zNE-chzG!&6!Jn`UHQG6-prr5=S)T%(2{@R zvi4Q{q$q}+k?LwST+NW)p5lP4%!|#NusI>qYmtG+flFhi`Jn~}%JYf1_bTAzF^d~UMEZYx=}D3*JGU7NlP4)=p~g08 zwS9*~@8|Or>;8z6u&Eg<{ADSs@a`6f3ItNQ*zR9s61gw|-kUM z2h(_>FF8TGfA#A`>yxF2Fn-6a`p1#cAH#$*H7o7+$?WS$P4uNMqg3s7q&p0#yIQd9 zY_ZsdtrJ&Ov;72L8j@!H5hjurpfa;STG4yA5NkRzK>pLju%4H}%eV9_@gv0sGr}HX znTpzNwfJ+CJ$LP26R3X5c6;S4ViXhBgp?__kDt@V4u-B$HhGTgzbCi~-)*9tQ#~&C z@;fnSIK`>#n@NN36|EF*FFj}XJ=1Hq_G+E?E{dP_EM~ZiQgU%3F?scPT#g_0E6uCr zS$7vO5(2f(+Jb6ITU?D{JDdY*KzCJsi!P4l5hkYB#h{_{!Iv=+qvMK>3p1Q12^UZW zVZ=iSK6fq0gbd3iG4<5-ab|LQh3@oU2-yt>P~-|7mWIU3c337kpBk(tb*pl}KPpp? zu2Y%7K({icTu}W~eaZfc={Z@@dptP`Ax3!l;94`jKX)!tq0LijoW1K(tz*=~=&u

vt~^#^7%s?M0M$$CP= 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 P6#VVo<78X8n-%w8QTh{~ literal 0 HcmV?d00001 diff --git a/cdcfluview.Rproj b/cdcfluview.Rproj new file mode 100644 index 0000000..446d9e1 --- /dev/null +++ b/cdcfluview.Rproj @@ -0,0 +1,21 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +StripTrailingWhitespace: Yes + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageBuildArgs: --resave-data +PackageRoxygenize: rd,collate,namespace diff --git a/man/cdcfluview.Rd b/man/cdcfluview.Rd new file mode 100644 index 0000000..5556ab6 --- /dev/null +++ b/man/cdcfluview.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2 (4.1.0): do not edit by hand +% Please edit documentation in R/cdcfluview-package.R +\docType{package} +\name{cdcfluview} +\alias{cdcfluview} +\alias{cdcfluview-package} +\title{A package to retrive data behind the CDC FluView portal} +\description{ +A package to retrive data behind the CDC FluView portal +} +\author{ +Bob Rudis (@hrbrmstr) +} + diff --git a/man/get_flu_data.Rd b/man/get_flu_data.Rd new file mode 100644 index 0000000..e36e7bb --- /dev/null +++ b/man/get_flu_data.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2 (4.1.0): do not edit by hand +% Please edit documentation in R/cdcfluview.R +\name{get_flu_data} +\alias{get_flu_data} +\title{Retrieve CDC flu data} +\usage{ +get_flu_data(region = "hhs", sub_region = 1:10, data_source = "ilinet", + years = 2014) +} +\arguments{ +\item{region}{one of "\code{hhs}", "\code{census}", "\code{national}"} + +\item{sub_region}{depends on the \code{region_type}.\cr +For "\code{national}", the \code{sub_region} should be \code{NA}.\cr +For "\code{hhs}", should be a vector between \code{1:10}.\cr +For "\code{census}", should be a vector between \code{1:9}} + +\item{data_source}{either of "\code{who}" (for WHO NREVSS) or "\code{ilinet}" or "\code{all}" (for both)} + +\item{years}{a vector of years to retrieve data for (i.e. \code{2014} for CDC flu seasn 2014-2015)} +} +\value{ +If only a single \code{data_source} is specified, then a single \code{data.frame} is + returned, otherwise a named list with each \code{data.frame} is returned. +} +\description{ +Uses the data source from the CDC FluView \url{http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html} +and provides flu reporting data as either a single data frame or a list +of data frames (depending on whether either WHO NREVSS or ILINet - or both - is chosen) +} +\examples{ +\dontrun{ +flu <- get_flu_data("hhs", 1:10, c("who", "ilinet"), years=2000:2014) +} +} + diff --git a/tests/test-all.R b/tests/test-all.R new file mode 100644 index 0000000..86f401f --- /dev/null +++ b/tests/test-all.R @@ -0,0 +1,2 @@ +library(testthat) +test_check("cdcfluview") diff --git a/tests/testthat/test-cdcfluview.R b/tests/testthat/test-cdcfluview.R new file mode 100644 index 0000000..ab6f62f --- /dev/null +++ b/tests/testthat/test-cdcfluview.R @@ -0,0 +1,6 @@ +context("basic functionality") +test_that("we can do something", { + + #expect_that(some_function(), is_a("data.frame")) + +})