From cc98139ec9b25827e486f4474de0b2a02259872f Mon Sep 17 00:00:00 2001 From: Jeremy Fitzpatrick Date: Wed, 23 Aug 2023 19:30:02 +0000 Subject: [PATCH] version 0.1 --- DESCRIPTION | 20 ++++++++++ LICENSE | 2 + MD5 | 12 ++++++ NAMESPACE | 11 ++++++ R/blsSelect.R | 12 ++++++ R/blsViewer.R | 20 ++++++++++ R/blsViewerServer.R | 76 ++++++++++++++++++++++++++++++++++++ R/blsViewerUI.R | 34 ++++++++++++++++ R/imports.R | 8 ++++ R/unemploymentPlot.R | 43 ++++++++++++++++++++ README.md | 26 ++++++++++++ inst/extdata/blsData.sqlite | Bin 0 -> 114688 bytes man/blsViewer.Rd | 28 +++++++++++++ 13 files changed, 292 insertions(+) create mode 100644 DESCRIPTION create mode 100755 LICENSE create mode 100644 MD5 create mode 100644 NAMESPACE create mode 100644 R/blsSelect.R create mode 100644 R/blsViewer.R create mode 100644 R/blsViewerServer.R create mode 100644 R/blsViewerUI.R create mode 100644 R/imports.R create mode 100644 R/unemploymentPlot.R create mode 100644 README.md create mode 100644 inst/extdata/blsData.sqlite create mode 100644 man/blsViewer.Rd diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..f5c839a --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,20 @@ +Package: blsBandit +Title: Data Viewer for Bureau of Labor Statistics Data +Version: 0.1 +Authors@R: + person(given = "Jeremy", + family = "Fitzpatrick", + role = c("aut", "cre"), + email = "jmfitzpa@gmail.com") +Description: Allows users to easily visualize data from the BLS (United States of America Bureau of Labor Statistics) . Currently unemployment data series U1-U6 are available. Not affiliated with the Bureau of Labor Statistics or United States Government. +License: MIT + file LICENSE +Imports: DBI (>= 1.1.3), jsonlite (>= 1.8.4), plotly (>= 4.10.2), + RSQLite (>= 2.2.16), shiny (>= 1.7.1), zoo (>= 1.8-12) +Encoding: UTF-8 +RoxygenNote: 7.2.0 +NeedsCompilation: no +Packaged: 2023-08-22 21:58:33 UTC; Taco +Author: Jeremy Fitzpatrick [aut, cre] +Maintainer: Jeremy Fitzpatrick +Repository: CRAN +Date/Publication: 2023-08-23 19:30:02 UTC diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..2aeba30 --- /dev/null +++ b/LICENSE @@ -0,0 +1,2 @@ +YEAR: 2023 +COPYRIGHT HOLDER: Jeremy Fitzpatrick diff --git a/MD5 b/MD5 new file mode 100644 index 0000000..9f43382 --- /dev/null +++ b/MD5 @@ -0,0 +1,12 @@ +11357e9ba71eea8b36b253ecd1a92e04 *DESCRIPTION +0bc764a9dde70ea0c50fb69fd411026a *LICENSE +ff224a6198b9b871e261cc790346537b *NAMESPACE +4d74bb087ce7f72cddeed7493e9ede3d *R/blsSelect.R +13e7746a5600387b4015255971a119c1 *R/blsViewer.R +56167f5afa5c268c5489fdc479381a6f *R/blsViewerServer.R +6d9dfa2f47ba8d8ff6347e29cec716c3 *R/blsViewerUI.R +6e4614bd6dc3df08f2dcfee200e7b4c1 *R/imports.R +66db8598112e29594c5ef729b3a29bcb *R/unemploymentPlot.R +56dd1f49016edd3c5c93a15c92023b46 *README.md +a6301c9442c5cef9e1eac9f7428a046d *inst/extdata/blsData.sqlite +2279f443a38070d6fd36a0d29db13363 *man/blsViewer.Rd diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..7c3577c --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,11 @@ +# Generated by roxygen2: do not edit by hand + +export(blsViewer) +import(DBI) +import(RSQLite) +import(plotly) +import(shiny) +importFrom(jsonlite,fromJSON) +importFrom(utils,head) +importFrom(utils,tail) +importFrom(zoo,as.yearmon) diff --git a/R/blsSelect.R b/R/blsSelect.R new file mode 100644 index 0000000..5478701 --- /dev/null +++ b/R/blsSelect.R @@ -0,0 +1,12 @@ +#' Select BLS Data +#' +#' This function should not be run by the user. +#' @param query A valid SQL SELECT query +#' @noRd +blsSelect <- function(query) { + dbLocation <- system.file("extdata", "blsData.sqlite", package = "blsBandit") + con <- dbConnect(RSQLite::SQLite(), dbname = dbLocation) + queryResult <- dbGetQuery(con, query) + dbDisconnect(con) + return(queryResult) +} diff --git a/R/blsViewer.R b/R/blsViewer.R new file mode 100644 index 0000000..3bbd72d --- /dev/null +++ b/R/blsViewer.R @@ -0,0 +1,20 @@ +#' Run the BLS Viewer +#' +#' This function runs the BLS (US Bureau of Labor Statistics) data viewer. +#' Currently this viewer allows the user to select and view unemployment data. +#' The data is static as the package blsAPI is no longer available on CRAN. +#' To install the latest version of blsBandit and the blsAPI with update data +#' functionality install them from github. +#' blsAPI +#' blsBandit +#' The blsBandit package is not affiliated with the Bureau of Labor Statistics +#' or US Government. +#' @keywords BLS Unemployment +#' @export +#' @examples +#' # Run the BLS data viewer. +#' if(interactive()){blsViewer()} +#' @return No return value. The user can save charts from within the interface. +blsViewer <- function() { + shinyApp(ui = blsViewUI, server = blsViewerServer) +} diff --git a/R/blsViewerServer.R b/R/blsViewerServer.R new file mode 100644 index 0000000..b5b2aae --- /dev/null +++ b/R/blsViewerServer.R @@ -0,0 +1,76 @@ +#' Shiny Server Logic for blsViewer +#' +#' This function should not be run by the user. +#' @param input,output,session Internal shiny parameters. +#' @noRd +blsViewerServer <- function(input, output, session) { + ## Update selections based on available unemployment series. + updateSelectizeInput("unemploymentSeries", + session = session, + choices = blsSelect("SELECT uiName FROM blsSeriesNames;")$uiName, + selected = blsSelect("SELECT uiName FROM blsSeriesNames;")$uiName[3] + ) + + ## Update years selections, based on unemployment series selection. + observeEvent(input$unemploymentSeries, + { + years <- blsSelect(paste0( + "SELECT DISTINCT year FROM blsDataSeries ", + "INNER JOIN blsSeriesNames ON ", + "blsSeriesNames.seriesID = blsDataSeries.fk_seriesID ", + "WHERE uiName IN ('", + paste(input$unemploymentSeries, collapse = "','"), + "');" + ))$year + years <- sort(years) + updateSelectizeInput("selectStartYear", + session = session, choices = head(years, -1), + selected = min(years) + ) + updateSelectizeInput("selectEndYear", + session = session, choices = tail(years, -1), + selected = max(years) + ) + }, + ignoreInit = TRUE, + ignoreNULL = TRUE + ) + + ## Ensure that the start year is acceptable. Create plot based on years selected. + observeEvent(input$selectStartYear, + { + if (input$selectStartYear > input$selectEndYear) { + updateSelectizeInput("selectEndYear", + session = session, selected = as.character(as.numeric(input$selectStartYear) + 1) + ) + } else { + output$unemploymentPlot <- renderPlotly({ + unemploymentPlot( + input$unemploymentSeries, input$selectStartYear, input$selectEndYear + ) + }) + } + }, + ignoreNULL = TRUE, + ignoreInit = TRUE + ) + + ## Ensure that the end year is acceptable. Create plot based on years selected. + observeEvent(input$selectEndYear, + { + if (input$selectStartYear > input$selectEndYear) { + updateSelectizeInput("selectStartYear", + session = session, selected = as.character(as.numeric(input$selectEndYear) - 1) + ) + } else { + output$unemploymentPlot <- renderPlotly({ + unemploymentPlot( + input$unemploymentSeries, input$selectStartYear, input$selectEndYear + ) + }) + } + }, + ignoreNULL = TRUE, + ignoreInit = TRUE + ) +} diff --git a/R/blsViewerUI.R b/R/blsViewerUI.R new file mode 100644 index 0000000..4d77024 --- /dev/null +++ b/R/blsViewerUI.R @@ -0,0 +1,34 @@ +#' The User-Interface for the blsViewer +#' +#' This function should not be run by the user. +#' @noRd +blsViewUI <- function() { + fluidPage( + ## Title + fluidRow(h1("BLS Viewer", style = "text-align: center;")), + fluidRow(br()), + + ## Unemployment Plot + fluidRow(column(offset = 1, 10, plotlyOutput("unemploymentPlot"))), + fluidRow(br()), + + ## Selections for Series and Years + fluidRow( + column( + offset = 2, 3, + selectizeInput("unemploymentSeries", "Select Unemployment Series", + choices = NULL, multiple = TRUE + ) + ), + column(2, selectizeInput("selectStartYear", "Select Start Year", + choices = NULL + )), + fluidRow(column( + 2, + selectizeInput("selectEndYear", "Select End Year", + choices = NULL + ) + )) + ) + ) +} diff --git a/R/imports.R b/R/imports.R new file mode 100644 index 0000000..92d43ec --- /dev/null +++ b/R/imports.R @@ -0,0 +1,8 @@ +#' @import shiny +#' @import plotly +#' @import RSQLite +#' @import DBI +#' @importFrom zoo as.yearmon +#' @importFrom jsonlite fromJSON +#' @importFrom utils head tail +NULL diff --git a/R/unemploymentPlot.R b/R/unemploymentPlot.R new file mode 100644 index 0000000..68a9e61 --- /dev/null +++ b/R/unemploymentPlot.R @@ -0,0 +1,43 @@ +#' Create Unemployment Plot +#' +#' This function should not be run by the user. +#' @param series selection of unemployment series +#' @param yearStart selection of start year for series +#' @param yearEnd selection of end year for series +#' @noRd +unemploymentPlot <- function(series, yearStart, yearEnd) { + ## Get unemployment data from data base. + unemploymentData <- blsSelect(paste0( + "SELECT uiName, year, month, rate FROM blsDataSeries ", + "INNER JOIN blsSeriesNames ON ", + "blsSeriesNames.seriesID = blsDataSeries.fk_seriesID ", + "WHERE uiName IN ('", + paste(series, collapse = "','"), + "') AND ", " year >= ", yearStart, " AND year <= ", yearEnd, ";" + )) + + ## If no data is found return a warning. + if (nrow(unemploymentData) == 0) { + warning("No Unemployment Data For Selection") + return(NULL) + } + + ## Create sortable month/year formatted column. + unemploymentData$yearMonth <- as.yearmon(paste( + unemploymentData$month, + unemploymentData$year + )) + unemploymentData <- unemploymentData[order(unemploymentData$yearMonth), ] + + ## Create Plotly plot of unemployment data. + blsPlot <- plot_ly(unemploymentData, split = ~uiName, + x = ~yearMonth, y = ~rate, type = "scatter", mode = "lines" + ) %>% + layout( + xaxis = list(title = "Year"), + yaxis = list(title = "Unemployment Rate"), + title = series + ) + + return(blsPlot) +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..0c83e73 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# blsBandit R Package + +The goal of this package is make it easy to view BLS data using Rshiny. +It is currently under development and only shows the U1-U6 unemployment data. + +## Package Installation + +If needed install devtools. +install.packages("devtools") +Install blsBandit. +devtools::install_github("Jeremy-Fitzpatrick/blsBandit") + +## BLS Viewer + +The blsViewer() function runs a simple GUI interface where the user can select +an employment series. Once the employment series is selected a start and end +date to be plotted in the interface can be selected. + +## Update Unemployment Data + +The updateUnemploymentData() function is used to update the unemployment data +series in the database. It is only necessary if you'd like to get the latest +data and will require the installation of the blsAPI package. + +## Released Under MIT License +See LICENSE.md file. diff --git a/inst/extdata/blsData.sqlite b/inst/extdata/blsData.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..f81eb38908954397f06804e7971d950c1c76851f GIT binary patch literal 114688 zcmeFa2ee$(l`X1@r*hqUPb`Fx$T^CfbO|COqR0jWh+rg=1V%(x&Q)z2w+$xeoU_O| zNMz`y9U3QW{Ajz~__>Wk`>(n8TKil{^c&;GpCG9iA1K1&zLb~O8$3Krc7C#{wIHN`Vah1{vz@p|NZ~d z7@M82TE6(FDe?SgQwkpzmliLh|Cs!nWMGnkNd_hvm}Fp*fk_4?8JJ{Xl7UGECK>pD zkAd^tZ1*?Z4EbjF;64xce+?g0mELiQ!|=biVJhJ|OJwfOWI zhtEEW+D>SH-aOiV(h(0>0p07MLuc>1_naB~&pvv_1``gsAvN7=_Mx-q>@oW=oSQ!X zIrA3IU$lXo)`lCF*Na&Gh8spImdtfRyA^vySDx*JmYA*#YNmAXq5B@V+o4C}%rIRu z+KMxqF?Y_shs>Rg7U!RV)B8&EhC9WQ{y`f?rkrusDf2H}bnXJ$ik~p={KaRh&nK9% z)%;G_YQ@j-oudCYI&ZmR=NK)t6c$^a{+BGSHKq8&;-kfH6&DourVo>UlMGBUFv-9q z1CtC)GBC-&BmS!`y9W%sp%V z!gCg!y=3A1vlh=dloX7$6Du~_e(pA3(I~!RqwVHy{S}R3(rD`~)Zg5hU(qNUHri_D zwp(pEcdM^x6p=&AwGBC-&Bmcu}7|4{rbDFHt#{;2p-@txuu#g~fD6dx}>SiHM#DPEF)Gyh=zs{A+eXXFph&&qF{cXNNweVThK_ek#QTrKzY++n$0a~tN|?BBDW zW#7p@p1m&H$exuwJiAMFgRGtTd*-vu`sW zSS=BWe;R)){%rh?_;=zL$4`#$6W=VpTI}z!U&daKJr=t@){ZTT9UI#twn3~A{UZ9$ z(PyGJM%&TzqQ^#OM>mbSkv~U1iM$-SGxEL2#gUW#yOrsc*GxpBB`aoKzuWnzoxf=D zcy^}xE0t%EVLA+l%|B=H{DmjYKW{v>41dc<%G1d!Z76;wI{&(}DBOJNfi+gO>!~?VR(@STN29vC9GBwr;;
    ^*lzl>7b?EcYnjgYm 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Ǜ(nEg2c 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 +blsBandit +The blsBandit package is not affiliated with the Bureau of Labor Statistics +or US Government. +} +\examples{ +# Run the BLS data viewer. +if(interactive()){blsViewer()} +} +\keyword{BLS} +\keyword{Unemployment}