From 33cc7abfc99f4eebd0617de8670ce82d07094b53 Mon Sep 17 00:00:00 2001 From: Matt Cowgill Date: Mon, 31 May 2021 09:14:01 +1000 Subject: [PATCH 1/2] bring in `strayr` functions --- DESCRIPTION | 14 ++- NAMESPACE | 4 + NEWS.md | 3 +- R/auholidays.R | 10 ++ R/clean_state.R | 103 ++++++++++++++++ R/is_holiday.R | 47 +++++++ R/sysdata.rda | Bin 32748 -> 33490 bytes README.Rmd | 182 +++++++++++++++++++++------- data-raw/_run_all.R | 4 +- data-raw/create_au_holidays.R | 26 ++++ data-raw/create_strayr_dictionary.R | 72 +++++++++++ data/anzsco.rda | Bin 21000 -> 21012 bytes data/anzsic.rda | Bin 10598 -> 10577 bytes data/asced_foe.rda | Bin 5911 -> 5913 bytes data/asced_qual.rda | Bin 1242 -> 1251 bytes data/auholidays.rda | Bin 0 -> 2531 bytes man/auholidays.Rd | 24 ++++ man/clean_state.Rd | 70 +++++++++++ man/is_holiday.Rd | 26 ++++ tests/testthat/test-clean_state.R | 51 ++++++++ tests/testthat/test-is_holiday.R | 20 +++ 21 files changed, 605 insertions(+), 51 deletions(-) create mode 100644 R/auholidays.R create mode 100644 R/clean_state.R create mode 100644 R/is_holiday.R create mode 100644 data-raw/create_au_holidays.R create mode 100644 data-raw/create_strayr_dictionary.R create mode 100644 data/auholidays.rda create mode 100644 man/auholidays.Rd create mode 100644 man/clean_state.Rd create mode 100644 man/is_holiday.Rd create mode 100644 tests/testthat/test-clean_state.R create mode 100644 tests/testthat/test-is_holiday.R diff --git a/DESCRIPTION b/DESCRIPTION index f25528b..1c28e32 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,13 +1,15 @@ Package: abscorr Type: Package Title: Ready-to-use Australian common structures and classifications and tools for working with them -Version: 0.1.0 -Author: person("Will", "Mackey", email = "wfmackey@gmail.com", +Version: 0.1.1 +Author: c(person("Will", "Mackey", email = "wfmackey@gmail.com", role = c("aut", "cre")), person(given = "Matt", family = "Johnson", role = c("aut", "cre")), person(given = "David", family = "Diviny", email = "david.diviny@nousgroup.com.au" - role = c("aut", "cre")) + role = c("aut", "cre")), + person("Matt", "Cowgill", role = c("aut"), email = "mattcowgill@gmail.com", comment = c(ORCID = "0000-0003-0422-3300")), + person("Bryce", "Roney", role = c("ctb"))) Maintainer: Will Mackey License: GPL-3 Description: This package provides data and functions for working with common structures and classifications used in Australia. @@ -21,9 +23,11 @@ Imports: readxl, magrittr, stringr, - stringdist, tidyr, - rlang + rlang, + stringdist (>= 0.9.5.1), + lubridate, + parsedate Suggests: testthat, here diff --git a/NAMESPACE b/NAMESPACE index dd91271..e100561 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,8 +3,11 @@ export("%>%") export(clean_anzsco) export(clean_anzsic) +export(clean_state) export(get_seifa) export(get_seifa_index_sheet) +export(is_holiday) +export(strayr) import(absmapsdata) import(readxl) importFrom(dplyr,across) @@ -20,6 +23,7 @@ importFrom(dplyr,starts_with) importFrom(lifecycle,deprecate_soft) importFrom(magrittr,"%>%") importFrom(purrr,map_dfr) +importFrom(purrr,map_lgl) importFrom(rlang,.data) importFrom(stringdist,amatch) importFrom(stringr,str_remove_all) diff --git a/NEWS.md b/NEWS.md index 1600cc6..141c776 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,7 @@ +# abscorr 0.1.1 +* Functions from `strayr` package to wrangle state names + public holidays added # abscorr 0.1.0 - * use pkgdown for documentation * Added a `NEWS.md` file to track changes to the package * Import SEIFA scores for various spatial geometries diff --git a/R/auholidays.R b/R/auholidays.R new file mode 100644 index 0000000..689b166 --- /dev/null +++ b/R/auholidays.R @@ -0,0 +1,10 @@ +#' @title Australian Public Holidays +#' @description Tidy data set of Australian Public Holidays +#' @format A data frame with 776 rows and 3 variables: +#' \describe{ +#' \item{\code{Date}}{The date of the holiday} +#' \item{\code{Name}}{The name of the holiday} +#' \item{\code{Jurisdiction}}{Pipe seperated list of jurisdictions to which the holiday applies} +#'} +#' @source \url{https://data.gov.au/data/dataset/australian-holidays-machine-readable-dataset} +"auholidays" diff --git a/R/clean_state.R b/R/clean_state.R new file mode 100644 index 0000000..b573b71 --- /dev/null +++ b/R/clean_state.R @@ -0,0 +1,103 @@ +#' Convert Australian state names and abbreviations into a consistent format +#' +#' @param x a (character) vector containing Australian state names or abbreviations or +#' a (numeric) vector containing state codes (1 = NSW, 2 = Vic, 3 = Qld, 4 = SA, +#' 5 = WA, 6 = Tas, 7 = NT, 8 = ACT). +#' +#' @param to what form should the state names be converted to? Options are +#' "state_name", "state_abbr" (the default), "iso", "postal", and "code". +#' +#' @param fuzzy_match logical; either TRUE (the default) which indicates that +#' approximate/fuzzy string matching should be used, or FALSE which indicates that +#' only exact matches should be used. +#' +#' @param max_dist numeric, sets the maximum acceptable distance between your +#' string and the matched string. Default is 0.4. Only relevant when fuzzy_match is TRUE. +#' +#' @param method the method used for approximate/fuzzy string matching. Default +#' is "jw", the Jaro-Winker distance; see `??stringdist-metrics` for more options. +#' +#' @param ... all arguments to `strayr` are passed to `clean_state` +#' +#' @return a character vector of state names, abbreviations, or codes. +#' +#' @details `strayr()` is a wrapper around `clean_state()` and is provided for +#' backwards compatibility. `strayr()` is soft-deprecated, but will not be removed +#' for the foreseeable future. New code should use `clean_state()`. +#' +#' @rdname clean_state +#' @examples +#' +#' x <- c("western Straya", "w. A ", "new soth wailes", "SA", "tazz") +#' +#' # Convert the above to state abbreviations +#' clean_state(x) +#' +#' # Convert the elements of `x` to state names +#' +#' clean_state(x, to = "state_name") +#' +#' # Disable fuzzy matching; you'll get NAs unless exact matches can be found +#' +#' clean_state(x, fuzzy_match = FALSE) +#' +#' # You can use clean_state in a dplyr mutate call +#' +#' x_df <- data.frame(state = x, stringsAsFactors = FALSE) +#' +#' \dontrun{x_df %>% mutate(state_abbr = clean_state(state))} +#' +#' @importFrom stringdist amatch +#' @export + +clean_state <- function(x, to = "state_abbr", fuzzy_match = TRUE, max_dist = 0.4, method = "jw"){ + + + if(!is.logical(fuzzy_match)){ + stop("`fuzzy_match` argument must be either `TRUE` or `FALSE`") + } + + if(!is.numeric(x)) { + x <- state_string_tidy(x) + } + + if(fuzzy_match){ + matched_abbr <- names(state_dict[stringdist::amatch(x, tolower(state_dict), + method = method, + matchNA = FALSE, + maxDist = max_dist)]) + } else { + matched_abbr <- names(state_dict[match(x, tolower(state_dict))]) + } + + ret <- state_table[[to]][match(matched_abbr, state_table$state_abbr)] + + ret <- as.character(ret) + + ret + +} + +#' @rdname clean_state +#' @export +strayr <- function(...) { + .Deprecated(new = "clean_state", + msg = "The strayr() function has been renamed clean_state().") + clean_state(...) +} + + + +state_string_tidy <- function(string){ + + string <- tolower(string) + + string <- trimws(string, "both") + + string <- ifelse(string %in% c("na", "n.a", "n.a.", "n a", + "not applicable"), + NA_character_, + string) + + string +} diff --git a/R/is_holiday.R b/R/is_holiday.R new file mode 100644 index 0000000..1088b35 --- /dev/null +++ b/R/is_holiday.R @@ -0,0 +1,47 @@ +#' @title is_holiday +#' @description Identifies if a given date is a public holiday in Australia +#' @param date Date, POSIXct object or a string that can be parsed with `parsedate::parse_date` +#' @param jurisdictions Vector of state jurisdictions you wish to filter on, defaults to all of Australia +#' @return logical(`TRUE` or `FALSE`) vector +#' @examples +#' is_holiday('2020-01-01') +#' is_holiday('2019-05-27', jurisdictions=c('ACT', 'TAS')) +#' h_df <- data.frame(dates = c('2020-01-01', '2020-01-10')) +#' h_df %>% +#' dplyr::mutate(IsHoliday = is_holiday(dates)) +#' @rdname is_holiday +#' @export +#' @importFrom purrr map_lgl +is_holiday <- function(date, jurisdictions = c()) { + ret <- purrr::map_lgl(date, do_is_holiday, jurisdictions = jurisdictions) + + return(ret) +} + +do_is_holiday <- function(date, jurisdictions = c()) { + if (is.na(date)) { + stop("`date` argument cannot be NA") + } + + if (!lubridate::is.Date(date) & !lubridate::is.POSIXct(date)) { + # Attempt to coerce to date + new_date <- parsedate::parse_date(date) + + if (is.na(new_date)) { + stop("`date` must be a Date, POSIXct object or a string that can be parsed as a date") + } + + # Remove any time or time zone element + new_date <- lubridate::as_date(new_date) + } else { + new_date <- lubridate::as_date(date) + } + + if (length(jurisdictions) == 0) { + ret <- abscorr::auholidays[abscorr::auholidays$Date == new_date, ] + } else { + ret <- abscorr::auholidays[abscorr::auholidays$Date == new_date & (abscorr::auholidays$Jurisdiction %in% jurisdictions | abscorr::auholidays$Jurisdiction == "NAT"), ] + } + + return(nrow(ret) > 0) +} diff --git a/R/sysdata.rda b/R/sysdata.rda index 9c9f50a2358b849f790931ac7d1b0917dd34010d..0c129d958c39cef3026b505c323a05400e5f2e77 100644 GIT binary patch delta 33015 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 PzyB9SxNKY001-q0B8UJ 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%0A<1A0dbgYMlq1u1T-2^ z0Y_HTe6aHNWi12QBcwj_0k7=0U>Gn{7lpsrXgKj7Pasz*V8ShERc6~Ub@S_>s zqT%!SHQ&E3DGyD+wm{!Xsk2*HdUDx=DW8w7so0Pqr29FWUp@4*oshJF zr!4F9ocj90gh95NX#+R{z_6HAE`pIu?Yx1zAS~K@#u>|Q6%t(uAs|^-H#6c1zB+L5 zdFuWeM=qTPV0+1Y!fcXrpL;8>B*{>2l zlGERG_M5PesT4!$^D4bxCU~3k@3&FRM>@pyB0n;6K}YC+%tTY+h>D5v2#;sFLymaV zR8c+Kp8ZZ@DsmR*BsJGDO+)6MUrALjE%gXC6X%wydCON6QFGtTy63}^%w*3Ub5(vJ zsZyaA92+x{HZ(p?ullVOA)6qER zxo5vGfdr^6K+yz+6fp+{lt_P}SN7swvFfgWctIa!un#w&1m5~Ms%AkhA7Kp+25s}CqDZS>TO?F@{NPG&xgrC9_ z90&ov^se*)PuD-4y72?W9o>BMAP3iL>#;$haKC;=vk{PD~46{`9I^;Jw;+7F@L+iq`VMC6%>en zqOZfsbL+acXX7FKe`QU`$}OPPS$D7>1wa-G7qZ4n7OfSatM_YksVfC3@XBN&lOe1O znHVbEIfq-OR4#4TU0tBxU3&Zb4t@EH7$*?U9y1QTh42Y7ye7s~ku>w-uLiGo>tJTMNY-G0BvlojFo>Z+>- z2r(0xs5(EN^M`7(uF^(fQ0$!TkfcDFlT=)pnBANM?cc;sG^EIG=efW=B(Vpp)#vk( zL}-05m(-!=P}i%~?a(0j$+neMMgq&RK*`o*qX$&NV3vU((m5DNE@f9HM;Nhx$`o-* zA5kWfY%3s&f%hKM2g*XbbECZlnvuo?YNby8;3qR}^{S$Uh^2JJVfEHFZtWLDb%gq* zke)zY;SCsem(F*Gl(zZK<0MUNkylRn2{()+U!9swxl>YC(?iXjZP%Qy2Omi~o~gHY zO1DjKT~Z$JiHsbHBolPrf<}gaVM#2Pon+sAJ-)3kK-k=p2VTlX7dT_5B}%oY&Z!n2 zAfhV$W}Mk3OgGr3^SWr9Sn`jyo!S)ZSB+UXbV3r2G5tszf%<`bo$F-GlQ~es6qAOq z{d~d}|4EM!!$I1T!303Sa}MHgco{p0PJ!J)LJ3-ju+9d9kR%44re@QB++T5a9#ha_ z@Wv4M$o{*@q}FyyDX4|jR>rghrT! zJm&%MMe4!}48ynw2zbL0VgoE8(wuuZrj7#;bZq2HlL0%84)KJZz?ca~w@L%MngR#a zj%%vYDG7!HE?tZmFoA@Bchoa}KYwNl{=eD#?=0C$EPO(Wt zR8o4VZqo!j)*|Zth2ZJVS6FC5(xLnx@BWwgf6Ly#w8%l*jxHG`9}K=!$|$0NG|<=i zzb5tyv60e9If^KvC$&OIwahFgWsq^NJnO|6!L=HrMWDRrVCkoSCJd7j2!UGxxaO+rqQsHcqd4lLI1UlX>=3;`WbV!uC?Op4%TXN-iqsLv_n&5#+xuYvs zR!HoT+#qUN5Y$*;86s{*EK*Y>tb=SDnpY(^hHqFYxlI!0VrXU58T9LkF-9ucA(4bU zY(9@qCzm?=|1I8Hd?~B*@Xz5e)cH>k6Eau_!Ym=rp3#!JC)o zQk`=r+wDF%@DW87P+~+2*r>N$FaK$n*h*M31{(k|`n!za!-ENwDN9YJsj6wAF23x( zGLbeI6Boh*Kcmw$F@WjArS)FN#JJ~HHGy7^;PJtNoCO~6Lo#8EMFkW+ z4f;GL8Q%-$3LVb^2?9f;i%?cGKQ>BEA~SmP>rJf9^Eu>tg_Vhlm}Ma`D9FMTp_r`Z z9P8A4rNva~=&8-SD=enO-K8s9*37_7qMboT6J&rKx|Vi4!02H<0MBr9ne5ym8J+0@ zg2>>uznlJP-Z{^kmQ6<_FROBz-SHz+GoHLCvfAnZrO-}Ur1 z2?vbqJHT+-sYvV^Ou|Vp$qat^EdaM><+~9WYg|81OL`GN&Mh1a|%#_hE%_#&; zf4oU7fkp<%Ug%du8-Sn%p+dJPQ@}=O z(B^~#CDb|@(K|H&$l?lM?3tS#$!HUQaHw}3#6oZ$?@zx>L`f&VvI*@1>M;x3f!hYQ z;9-hwsG!W0DwQgSr%SznDA0tv1C!vPrLf^enPe0h9AN+^A_xdI^-geR7E98}K7&y| zIaO59vG1c674#lEzgCm@qU&?dyVJG@=SO_?SXFDN6^z%9)03FYb#q?pp__1jE=w@I z)vL{ZNu7-f#nbrii_mk2_q95Je)*ydJ@Ntmhx{k|f5EQ}q2h7dU$^Yo2k-qiaB~lp6`4tG$p~HW(@lXAlmL*-=BG;11^BoiRK`Vv34$Wb{IZyTP&yxv2MQFK z5=U0&>*2FMSJG<1vu(H$mGVMJb!+u-cYajjo{?#;r?AK#h(#K;-jtxB4M=DfpZaNg zJ_w}A**Q;du=8`|CErdg*)n0ACs{e|k+n8vn8sJ)$c$;N*yEscLo1+?=R_nf>`*gO zeSDV#aX43!Q-zo`OoJSM<}fzvnHcI~X0A0VX?Dc}H7GNhu^BNFCAq7%WV(j@`lwCS z`vHQk;9_9rWD3Ez>w+8wlVH(QK@fx@alygnKouJ;@^)E@&2{b9pY+u(K;i7N*2TA$ z=S-MZ26x0i8?}mG3`AxOqiCoTsWaAx0289m>+|?%>+|hCv~&7@uc5fpm*H>=&=-H% z5IMX0gSQ@PS%$W8#&pA(LtL(teR4wvE?f-~LlxCX%)x*N)&39L?fW^rBl=6%*M5xj zOGX@~QG)TrUIYkCg%CP2^xNp+^2g7z=)9r|z(a^a1bjpg7-6df2FfPxFN1MbHZkUcLnBL^Td==JT{)yOcx@M7Z? zool3i9*v&Lu3oa{j=HaF#ftHKOw9qEGE9a^goR;+5dnaI#E}&kxpPGkuxvymn1YLA zX*6OrNwZBEO^KRO?agR?6G(Kh{5W!r+lNr0i~-20O&Ty=2@(DrP~ro347{LmmShpd z+0??J#oSd0M$?mlPC#5W@3;t zGzn0p{f1LLN4#yV|4XPF)Caqy{XOCOnu*yxsE6nL_gkxbOhZ9q4I&3q7Q6B8T zB7+QBP_q*Zz$ReB0nM=nZ87m0nPP`;Ev7{~LT#}NKMvTWv0Z;+O5D$?=MPMTl zixWyNsv7{oRtcxW=;j#Me_!p}e~x`$U**%NjCpvA7>I&K3>boJ*^~5GA%9eSHwUl* z0Ab4k5d+Lf#G=Nd9WO0*+PYWQcmXCvr6h?dMUvY}tVk0p*O>^>qe73uZvpedCmdqC zsT6q$AbJegZE+HbU$k1$t}4aMp~XfxM}un#9;BqEj%^JcdDoA;1eK2N*OP2I2}(g3Go5haw^cK*{IX{@8xpd^n${ z!`t{-S()4tV!@hsE{OVdd9V>ln2?-y0)q?C4Va_ETIs#9d@gjdZD#K7JK(j3}$`(u~osyq5r$ zU^N991XiXbBSu5&Hejr493rSF_cwyvtF`AB#WwP{9cDm|r$2dB&x0_LnSbsS31~zRv1dxORW^m91 z>=1;Z8Sf7xQXU+kb(^oL#nWv0tMFZ#&Nd z5EVca2p}L>8|~PIfin!lS~?RWGD}NdSD!_`ua|dn?kgrMn6!6yHj25;xy^HP6p^wP z<;-Z?8${=AUyK#vi9;b>RZnDy(g}rxIa^3ms=&LKU_7@602Kyy3Y1CVxl&SiF=Rf&(sJT*h?Gpu+dvR*OH1H*CV%wO^cRI&M@gV#`Exv)4Kp9VG4c3A z1BrdjofsX`*|5P&bkwOsOB+f{;F>}Y-H@;>f#!LZPT4G%=rmFJiKZzzJCcIgy}YSd1$5GL)Ju0z&BcIQ;2LZs%WzkCcDt=T4?9jFP{rEtk;V7I73!>nW-mK2?Xl`cze9C zViRG29+jEIz)S&Al*B}|wKFni1PiPsYU`|p7>r^Xv8$@D^M%Sn=*=l90$~*d4xRy3 zE(1|;pc}EOV`)<)5kHsN^?QA|D}VObQXuE-oA|HRs=s94N9A@u87_S`V=)@O9~@Wi z_4F!nUh!J1`}7~5^P4}>E>Ej(t46Oc*)QWQ9S>#9-idKbRy?)UH``}%64_Vs(U%3f z{WEc9;LESwr})jce^jdOy_a^~$7Hv^r|qwX^~=7KlLn5C%Q)|K?cws{y?+nuf{OM@ zMOk#{jF#`ymzr)&a`I6{7W{_y?uU3Uw0!@%um{pWFel(NE2G?jbUxp=_^z+?&zgR6 zNq9&kJ#qa&(j(eX)|#srqI2azEhNxCZ&p8jcL-`(AX%od7HMnykK8Oz`#g5nVlec3 zs@W0OVq*?*sopXcH5D8IX1h6W-H^7B=F=K9t>E@)K?BCGga*?a#CokLt9=5UC& zy0AF;CN2xPfSBM3CLJWq&Ln-v0mhUi8`TT=eBC=f{%L-{`e>t&oTm*%qjN1Me{*nx zI7ARgWHJ%N48ulBIWl_`WKSY-pdNg>Qj^!g`*&|V34csmc!>={+V$|~U2~$9Mi#!9TQty5Jg(|7yF7*Z=74-$h9ick)lH%5 zyQyqlD!bJj9d?8c{^1vT`?glgJ=y|sGYHyy!B7HFAR(E-5Ok85gHi6k!-J~-ZXl;F z-YMZ?#BYuSd$)hqfUNnO>@Bnc%NG+gE=jT$Wp zB+l+kV!62mCQTMd#jzMWu9H$~lT4avXbM_clSgrYXpLr#V^Z!6SR|UFG+1s&Ce@Bh zfh<&A=R2zLQksb@oic67a_&XCX_%WfZtl&BB-Y^;>5CXTbd>4RWh+7uP#i$lHo;U; z*g&O}2t@{y{$&_{^Lskbb#wdyc!2ze!`8!Oi zt}%9?h6a`hV;GX&@`K$gT5|0ScW!AWW(v$LHl$I?>nSLI-0CSLn@Kf5&02XA$~@fj znd=|l{$8WPymaa+e=pbVzT51dJarDvghdfF%*8Pjt0MC{9ppTD4&@4Bq;L@B%!>f| zt?sn-eVwpvBb{Ov5cjxi*RNE?{Y7lF-DlPC9iaOlZtZ!2Z~h?N%z7a!fUL*#i39n))lwltG$74$x^DK~C+=aB)}AvNpD#;bl3EtW~zbE z4!Y7`0rW}qNV}8l)HU*wWH`T;j-3LirwFNkVl9F!ql=4iSt3bM`|+O!^2sL`2;^~+ zBxIN?geFBq5mcct8}u%k=Qx?yPnVYb{Cyg9;z%5ob>QfjCDE6=J@01c&mGmte)X1I zoMI5V*K#v?Qb`F$BU~hU%#nJ?4pi(jQr^t^Wy+@(iIlM^QW1E0?SfJ(WQvSsPLnEs z6tc8*db~DrQZjq5Xk=y@q@Bhvf*eOZX>vrzl4lIp^6=D2*V#xx3ggLPJcEc7WWqGE zrT8KOLabLJoeE$@i%#{HV(L8jWe}dx*cyp~fTp4(A`Kh?_I3%^gAs(7A`(^!j1l7tV4?@J$ zCNd*kKpEIk?U5-|rCLfrDJT>vX(%X0g}`+nc4qV;Y|dD^w1Et63|&}`VTs1~r4Bm1 zUrD}U(ZiJ^D5_OKAdsMj2>SRk84q5Z&5bE}+R=6%Ay_a@oR0tWps^E}0}E$D>Irt1&u>YXb$=0N^GOAu?oumfkG6Qb~{_ zf*ww@%{Qk83`dwY1X-FWNG+9rx6#)^6Ekh8u{C2ORb{1D)Auj4=c8$XA_AF7nKYti z2{R~AL{_C*`(7K`y<61)&2@u`M}g!jf(kjlVnp=^ycj2BdauDHW=8egB`z^>kMszO zM1ag7Vor?wGyWfkduGh-y@}j^AA#OZq~uR*3p>gV@GP1#DDRCmQQX*nEU^>W?A$ue zu~9wpVUf@^6PGPDR6$K3QIUv9(|otj_nmca<~h04<}$a_J5$ahYU)Zp9b#$1$c83x z%)l&GV+J`SYehx2HrTXkqeVtHE0M895>_O(3!8Gq5n?tr#)^_P7_n+FY+Ff1lCcz2 zQdq{5WT}QNDUDH?i&2t)(okrzRrpPGlBr8l%SK9~7Dg(|F;ONpu|*oAXxO63v13l{ z*vWOMj5ShBOqn@Y90rv&rI;{CQxO`BN)i>cMMa9yv5O@#)v;bJ&9t*vjB&7xF&$3z zivk)dqlgX8p%e_R7(@*L1dv?TiUY*Vtw)!3Tk<##^4(OX(%avE$drrMHv~zrGM$$K z2%)>qE)2;7sdKVr(p2KOq$^Dll~5APCgcbo-}!rftUTV|o5kx*sIAGtA?4{n$SMRe zD8}Q4(ifHL-QqG}Yy*TV3ZUeqNkwqTM#yU;&gCI6rd%A{`dxG(s9Ta!5hxQWk26C_ zxx1iR(Mc_`#^OnT4Em82m}M6-?JSZ=&_X%&rkWkg-aRx-+%HU+Wx{827swjcV@#JR zu|iTH1>^$R3zg_0(u zviS|t9dmi3-KoSjj@+pcVlGFlYNgatZjdIaeIzc`n2AV#e<`3D0-NeF#5hI$>2N4H0L^$Crh>FP(R&2`a ztwh!oPI743Bga#4L2ywMmX*sbEtyL*j%-RfO_5Z8u#B0b&6^;KrYNdD%P5^ln2U{_ zZf@F16jRqIj_qprkls&8qHH@}#=m8IPvrI{RLhXx5r46HnU7rQ<6(JFkD(ou&EPP6()(e>^K-` zoK80~Od})f?bvQPq$qS?fkF-^#(DxCxj5FbH3*tHtxa&LUH4&d)a-((W{5Q{nJ`Eo z^nD&zHM-H>QGc5(mV1a0PN2XY+ge{qjj~N^>X2W`Ble2GD74Nw#E7<*@ttDY#Y1 z2sb5g8VE=^1`R|SPTdvozV(%|HbI~} zWk8?~$Y>8*FC`-@6G|&Q!zN3ubcFemb#%$3lN5J=k0TD4!qFJ^SycNcctgqe)fB@q zDRopi%UV~UDFqZ1PndQjD3~avGtBkHOy{q0Mt=|J-`DQQR7DN8Wa?$^Q!`E$l&iI7 zPWLsdO_T3w&bK2PknRaGB}yE}RY0J_xm1HDXsQyaP8Q`9Xxc;REUudCHZstY z$$_a&E?rOVf24;;3?!E!dV4)}Tmit*3W*bh42)<9RX)dW zEM7y<>7){Iq5dE7&|-Rz>;^Zmgb#h-uSf@BTc~6Cp+IxOFpb{G%Vi1C1kFJS@>NN3 zrf!8vOoW>|^_4?EF9k8vF;l%`y)Y&t31nk3(?B-vynhTF2=<`c+M1N>N zqk7w^sBv61%v_17c{K-j<8o4Da}+x=5i&X0L2{uE$i{MHWQP*`u0x^Yyxlj7-M<*v z=xVWIds^&-5QX{t7etx-ynHYFC}ZA=K=#2PMts$3z?L9;I`-#Oc$xw+GnnO33FSn} zKu?pU!HMdzeVu9RrSR<<#SW%OV6v((_KY;oR|TcuY$@q zUgOvzDG)^x2r4QbzCOE$qo1sVCnQAlIRdr@GoWMQhAxnHVuI&f`Xt4QJRE%7nezL- zANaSguGVaWT-YgcJL_@#6w5}k0%ahbEiDdVb>8gL$ykkaJ$bDaPR_5s`+w&HNn?PD zBM?dwgKkE^aAz#jYRQk}RT&En3Me@3zIxVl)*_pd$~Y=vuJ-c*<`{VnLJsi5APB<&`@O%L zVmlVN*GYyMjRrU4lbfTrf=Mz=F@dWqP9)4B#&#!kHLL1EVl`53TDohz{6rH+3K&n5 zeao<@0G6G1_*JPAmVeimyXlrCN%=&@oa=_o^rBgN=!{Wb02V1C#Up$agmmf^3(4=2 zxi00P%Zhu~X?v0^*XtGJ=9d$`_98yNx%_{X^hCYYyPb&*7^tBYg2T`GPvI3*RYZS+ z|9jQY<73yv@#npuwl~e)j%$UGks>ti#mkX$&Z&kf)X9Z^igQ=2bmeco0zri2#yGtOCEPq3^x6Ugbb<`35uk*OU`uCY%(Vt&O zM4Q+1byc{cv=;0m5=oTk%m;IyE97^23&m5?=NXn$z6B^cRtR!zvgR~^iK~zsx%Sv-du9nmI>a=Fe;VfsVSOG2I$sx@MkLZ%os68)?3rYCVx78Db3ZiM56+tP zG=D)Tou0hqmg?T}^ne09O!gv*8V%@~hv#1dH)$cv1p-t1)o{;7nY4$#>%-!7HhTFi zUn=I5;Af>lH{|onCx=N1ojEx=P6nHr0r)=;$(;i{Fe;}cXg6TozrR>82`zgWDJRj* z_Ido$@Ns>=o!Yx~_0b);vSQ5!)?l6m2vVhjbC0u~9@W>Lnq6ZaP2n!@RaBjsw*vRB0 zam<_-k`{JDv9IBDvjq~gD$tgjK*UHf)X6BDl5Pp#CLCe$9V;g%S~EpW8A$Lfc7GAF zFo*1YUvHMjp$b9TFHlpoLtsJn0Ae>q6WHM8{_8or<-j&KtfQC^;s%jmN!}3=B!hPR zmGVq2X)v^9%qc<*+jEY^U}BE=HYz3M-%h)}p1!Wzg!SgKX*_hZZnuD8m~nZ|Tmj{3 zNTOJnl8<3uhuw5HjA*GW7{Wn_4S$9kg8QEW9zw9@g zpI(rNBn;hZ*I1o`9J{|QY=2Ej*qR#v79I1DP>59fzXwyHuUL2OL@6O>Kw7@E{aKpRZ(KGI)w}gRJ~!m zEVmPk!!blbTxH%-r_G^bz9zTN6FUgFd&Ko#t{XlxRm~bp7Ao>rNq;ljZYVuB;7y5Qy?P@;k)3?gPa(H5@w%xce=lTUgqw4>N(#wqIl(cul*BCN$s; zA!M1RC`y5^Q@E}4y7kd(y1iXIvR3BMS>1;4p)&&$#eb~%JzaD?hXsQY{?HGEPKJ>A zS^rs?McuAv^bQPQR*u2g{;)fMMBmT)HU8jFY$B?~L`cnov!$5zgpkU@0Gwd588 zjVd)W85%MflP|>k^UoTYMAFL?6%eZ-Q~@eNFde7s{c#&Qfy3vDAK^uVu zI6tHAbbmaFAw=jO3@@BLpw@-%*sdj(Nd$Kv}q&OrrKj3E*cI-Q3zA7+24>iRxd0qZE81y1lLDgOaW?C+OzXlzUhcA#% zwlL^)o60urgo>m$)gFlCmN5oJN)n2?m!nbo;rMGFbIKxYd51{DQ8oZ}Q+%HFlqD9F zWY~=0#Gw+5B5`2>Nw8|DC@)Z%&X7R}gny}@kz!9;N@C7jdNf*AF<>FCUJ#iMT7G%p z$12Hm=SNt~KxmH4Gh+}KzYn8dx7{U4rtbOLSi$X?z_Ak3;G1@mWF%!z5Pt5x4!_cS zP52q}leedkbR`b*XrB?x4K9Sy3$sWk1I%6v45UyEkQNglMnZm1)8YF+^zzaM#(%(s zl)#*l0>~0VyH{D~`?=px$v~QbdNMdkd_o)@#3tEb1%Sm8iGipY!G7`?zex9?ADTCyg}gy$cKV=Lx~@@y>k*0%I`Eb$^Kut*W^U|bL*$mdJvX}z3=Q4Z~8s6e+_hF1`CEaOyjhV zezLQw+6n=t^|QS#Cb@ri&j06Z*xSiFiGB-%S0-H?W!`QLEH)<1%fSNtUVrk32Dz+J zcX=otNy#8aF*2PRvKv#H#r>XA+JQjfxBkNxdDfmx^-hEC6TWVq)=YEAC{HhU$0uzx zC!71#J+8gIy?|9!RDXmObp%ey%cZq1cDZ7%?*APS+4Z`8_#27k28TpF{zrQG z-jxhIAJm~Sb7oIRsdLVEOYrjxhmo`@IHQgtm_!dw0{jjVnq0%7Wmh6RzMbsGM#vn7 z;#|RTOCY1@_ubS3>_DhdPKhwy8}p!X^(M-BH#rQxZa?9k9gbwv^?z%SxSP;qILJ00 z0AxaRH$S_XP(dc$b~xeCnsG*$vgh-6h>c17`)P2Vo)tf+qJ)-6kBS-XR2*x-7fh5-y1(liHTqbxp7z_NNywS8vvQyv~K_a diff --git a/README.Rmd b/README.Rmd index cda34d1..e72472d 100644 --- a/README.Rmd +++ b/README.Rmd @@ -1,5 +1,8 @@ --- output: github_document +editor_options: + markdown: + wrap: 72 --- @@ -16,18 +19,31 @@ knitr::opts_chunk$set( # abscorr -[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) -[![R build status](https://github.com/runapp-aus/abscorr/workflows/R-CMD-check/badge.svg)](https://github.com/runapp-aus/abscorr/actions) + +[![Lifecycle: +experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) +[![R build +status](https://github.com/runapp-aus/abscorr/workflows/R-CMD-check/badge.svg)](https://github.com/runapp-aus/abscorr/actions) + -The `abscorr` package provides tidy versions of common structures used by the Australian Bureau of Statistics (ABS). +The `abscorr` package provides tools to make working with Australian +data easier. This includes: + +- tidy versions of common structures used by the Australian Bureau of + Statistics (ABS), like ANZSIC and ANZSCO: -This package is currently **in development** and subject to change. -The lifecycle badge will be changed to `stable` when structures are stable -(should be relatively soon). +- a function to tidy up state names (`clean_states()`; and -**Contribute to this package**: -people are actively encouraged to contribute to this package. +- a function that knows whether particular dates are public holidays + (`is_holiday()`). + +This package is currently **in development** and subject to change. The +lifecycle badge will be changed to `stable` when it is stable (should be +relatively soon). + +**Contribute to this package**: people are actively encouraged to +contribute to this package. ## Installation @@ -39,52 +55,59 @@ remotes::install_github("runapp-aus/abscorr") ## Structures - Current structures stored in `abscorr` are: -- `anzsco`: occupation levels of the [Australian and New Zealand Standard Classification of Occupations (ANZSCO), First Edition, Revision 1, 2009. Cat. 1220.0](https://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1220.0First%20Edition,%20Revision%201?OpenDocument). -- `anzsic`: industry levels of the [Australian and New Zealand Standard Industrial Classification (ANZSIC), 2006 (Revision 1.0). Cat. 1292.0](https://www.abs.gov.au/ausstats/abs@.nsf/0/20C5B5A4F46DF95BCA25711F00146D75?opendocument). -- `asced_foe`: field of education levels of the [Australian Standard Classification of Education (ASCED), 2001. Cat. 1272.0](https://www.abs.gov.au/ausstats/abs@.nsf/mf/1272.0). -- `asced_qual`: qualification levels of the [Australian Standard Classification of Education (ASCED), 2001. Cat. 1272.0](https://www.abs.gov.au/ausstats/abs@.nsf/mf/1272.0). - -The `abscorr` package also loads [`absmapsdata`](https://github.com/wfmackey/absmapsdata), which contains the following structures _and their geometry_ as `sf` objects: - +- `anzsco`: occupation levels of the [Australian and New Zealand + Standard Classification of Occupations (ANZSCO), First Edition, + Revision 1, 2009. Cat. + 1220.0](https://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1220.0First%20Edition,%20Revision%201?OpenDocument). +- `anzsic`: industry levels of the [Australian and New Zealand + Standard Industrial Classification (ANZSIC), 2006 (Revision 1.0). + Cat. + 1292.0](https://www.abs.gov.au/ausstats/abs@.nsf/0/20C5B5A4F46DF95BCA25711F00146D75?opendocument). +- `asced_foe`: field of education levels of the [Australian Standard + Classification of Education (ASCED), 2001. Cat. + 1272.0](https://www.abs.gov.au/ausstats/abs@.nsf/mf/1272.0). +- `asced_qual`: qualification levels of the [Australian Standard + Classification of Education (ASCED), 2001. Cat. + 1272.0](https://www.abs.gov.au/ausstats/abs@.nsf/mf/1272.0). + +The `abscorr` package also loads +[`absmapsdata`](https://github.com/wfmackey/absmapsdata), which contains +the following structures *and their geometry* as `sf` objects: **ASGS Main Structures** -- `sa12011`: Statistical Area 1 2011 -- `sa12016`: Statistical Area 1 2016 -- `sa22011`: Statistical Area 2 2011 -- `sa22016`: Statistical Area 2 2016 -- `sa32011`: Statistical Area 3 2011 -- `sa32016`: Statistical Area 3 2016 -- `sa42011`: Statistical Area 4 2011 -- `sa42016`: Statistical Area 4 2016 -- `gcc2011`: Greater Capital Cities 2011 -- `gcc2016`: Greater Capital Cities 2016 -- `ra2011`: Remoteness Areas 2011 -- `ra2016`: Remoteness Areas 2016 -- `state2011`: State 2011 -- `state2016`: State 2016 +- `sa12011`: Statistical Area 1 2011 +- `sa12016`: Statistical Area 1 2016 +- `sa22011`: Statistical Area 2 2011 +- `sa22016`: Statistical Area 2 2016 +- `sa32011`: Statistical Area 3 2011 +- `sa32016`: Statistical Area 3 2016 +- `sa42011`: Statistical Area 4 2011 +- `sa42016`: Statistical Area 4 2016 +- `gcc2011`: Greater Capital Cities 2011 +- `gcc2016`: Greater Capital Cities 2016 +- `ra2011`: Remoteness Areas 2011 +- `ra2016`: Remoteness Areas 2016 +- `state2011`: State 2011 +- `state2016`: State 2016 **ASGS Non-ABS Structures** -- `ced2018`: Commonwealth Electoral Divisions 2018 -- `sed2018`: State Electoral Divisions 2018 -- `lga2016`: Local Government Areas 2016 -- `lga2018`: Local Government Areas 2018 -- `regional_ivi2008`: Regions for the Internet Vacancy Index 2008 -- `postcodes2016`: Postcodes 2016 -- `dz2011`: Census of Population and Housing Destination Zones 2011 -- `dz2016`: Census of Population and Housing Destination Zones 2016 - +- `ced2018`: Commonwealth Electoral Divisions 2018 +- `sed2018`: State Electoral Divisions 2018 +- `lga2016`: Local Government Areas 2016 +- `lga2018`: Local Government Areas 2018 +- `regional_ivi2008`: Regions for the Internet Vacancy Index 2008 +- `postcodes2016`: Postcodes 2016 +- `dz2011`: Census of Population and Housing Destination Zones 2011 +- `dz2016`: Census of Population and Housing Destination Zones 2016 +## Using ABS structures - -## Using `abscorr` - -Loading the package will lazily load the structures listed above. -Call them with their name: +Loading the package will lazily load the structures listed above. Call +them with their name: ```{r actual-load, include=FALSE} # use this to make sure README runs with current build @@ -107,3 +130,74 @@ glimpse(asced_qual) glimpse(sa42016) glimpse(ced2018) ``` + +## Converting state names and abbreviations + +The `clean_state()` function makes it easy to wrangle vectors of State names and abbreviations - which might be in different forms and possibly +misspelled. + +Let's start with a character vector that includes some misspelled State names, +some correctly spelled state names, as well as some abbreviations both malformed +and correctly formed. + +```{r create-string} + +x <- c("western Straya", "w. A ", "new soth wailes", "SA", "tazz", "Victoria", + "northn territy") + +``` + +To convert this character vector to a vector of abbreviations for State names, + use `clean_state()`: + +```{r strayr1} +clean_state(x) + +``` + +If you want full names for the states rather than abbreviations: + +```{r strayr-fullnames} + +clean_state(x, to = "state_name") + +``` + +By default, `clean_state()` uses fuzzy or approximate string matching to match the +elements in your character vector to state names/abbreviations. If you only want +to permit exact matching, you can disable fuzzy matching. This means you will +never get false matches, but you will also fail to match misspelled state names +or malformed abbreviations; you'll get an `NA` if no match can be found. + +```{r strayr-exact} + clean_state(x, fuzzy_match = FALSE) + +``` + +If your data is in a data frame, `clean_state()` works well within a `dplyr::mutate()` call: + +```{r dplyr} + + x_df <- data.frame(state = x, stringsAsFactors = FALSE) + +library(dplyr) + x_df %>% + mutate(state_abbr = clean_state(state)) +``` + +## Australian public holidays +This package includes the `auholidays` dataset from the [Australian Public Holidays Dates Machine Readable Dataset](https://data.gov.au/data/dataset/australian-holidays-machine-readable-dataset) as well as a helper function `is_holiday`: + +```{r is_holiday_example} +str(auholidays) + + +is_holiday('2020-01-01') +is_holiday('2019-05-27', jurisdictions=c('ACT', 'TAS')) + +h_df <- data.frame(dates = c('2020-01-01', '2020-01-10')) + +h_df %>% + mutate(IsHoliday = is_holiday(dates)) +``` + diff --git a/data-raw/_run_all.R b/data-raw/_run_all.R index bebe358..d4636bd 100644 --- a/data-raw/_run_all.R +++ b/data-raw/_run_all.R @@ -7,4 +7,6 @@ purrr::walk(glue::glue("data-raw/{files}"), source) #save internal only datasets -usethis::use_data(anzsco_dictionary, anzsic_dictionary, internal = TRUE, overwrite = TRUE) +usethis::use_data(anzsco_dictionary, anzsic_dictionary, + state_dict, state_table, + internal = TRUE, overwrite = TRUE) diff --git a/data-raw/create_au_holidays.R b/data-raw/create_au_holidays.R new file mode 100644 index 0000000..3a2a948 --- /dev/null +++ b/data-raw/create_au_holidays.R @@ -0,0 +1,26 @@ +library(ckanr) +library(tidyverse) +library(stringr) +library(lubridate) + +ckanr_setup(url = "https://data.gov.au") + +package <- package_show("australian-holidays-machine-readable-dataset") + +raw_data <- package$resources %>% + map(function(x) { + x[["url"]] + }) %>% + unlist() %>% + map_dfr(read_csv) + +auholidays <- raw_data %>% + transmute( + Date = ymd(Date), + Name = coalesce(`Holiday Name`), + Jurisdiction = coalesce(`Applicable To`, Jurisdiction), + Jurisdiction = str_to_upper(Jurisdiction) + ) + + +usethis::use_data(auholidays, internal = FALSE, overwrite = TRUE) diff --git a/data-raw/create_strayr_dictionary.R b/data-raw/create_strayr_dictionary.R new file mode 100644 index 0000000..dc0d896 --- /dev/null +++ b/data-raw/create_strayr_dictionary.R @@ -0,0 +1,72 @@ +# Create lookup tables of state names and abbreviations +library(tidyverse) + +state_table <- tibble::tribble( + ~state_name, ~state_abbr, ~iso, ~postal, + "New South Wales", "NSW", "AU-NSW", "NSW", + "Queensland", "Qld", "AU-QLD", "QLD", + "South Australia", "SA", "AU-SA", "SA", + "Tasmania", "Tas", "AU-TAS", "TAS", + "Victoria", "Vic", "AU-VIC", "VIC", + "Western Australia", "WA", "AU-WA", "WA", + "Australian Capital Territory", "ACT", "AU-ACT", "ACT", + "Northern Territory", "NT", "AU-NT", "NT", + "Australia", "Aus", "AU", "AU", + "Other", "Oth", NA_character_, NA_character_, + "Total", "Tot", NA_character_, NA_character_ + ) + +state_table <- tibble::tribble( + ~code, ~state_name, + 1, "New South Wales", + 2, "Victoria", + 3, "Queensland", + 4, "South Australia", + 5, "Western Australia", + 6, "Tasmania", + 7, "Northern Territory", + 8, "Australian Capital Territory" + ) %>% + right_join(state_table, by = "state_name") + + + +state_dict_df <- state_table %>% + gather(key = "type", value = "alias", -state_abbr) + +state_dict_df <- state_table %>% + select(state_abbr) %>% + mutate(alias = state_abbr, + type = "state_abbr") %>% + bind_rows(state_dict_df) + +# create dictionary as character vector +state_dict <- state_dict_df$alias +names(state_dict) <- state_dict_df$state_abbr + +state_dict <- c(state_dict, + "Aus" = "Australia", + "Aus" = "Aus", + "Aus" = "Oz", + "SA" = "south oz", + "WA" = "west oz", + "WA" = "double you ay", + "WA" = "dubyooway", + "WA" = "westraya", + "Tas" = "tassie", + "Tas" = "tazzie", + "Tas" = "tazzy", + "Oth" = "Other", + "Oth" = "Oth", + "Tot" = "Total", + "Tot" = "Tot") + +nospaces <- gsub(" ", "", state_table$state_name) +names(nospaces) <- state_table$state_abbr + +state_dict <- c(state_dict, nospaces) + +state_dict <- state_dict[!duplicated(state_dict)] + +state_dict <- tolower(state_dict) + diff --git a/data/anzsco.rda b/data/anzsco.rda index a9fe8adab0ed19e60d3f6b7fbb813c3467e7e4e2..440f6ffbb3f69a7f396554a581cf77c9f220aa2a 100644 GIT binary patch delta 20871 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 Z(nS>s5m5dPA}SyM7ji{7P>|2}MtOO==~Vy# delta 20819 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 diff --git a/data/anzsic.rda b/data/anzsic.rda index 64d7e46fa785d3b0c5cecc54ecc66921905c4aea..117996802d3628d1fb5509407630ab428ed99626 100644 GIT binary patch delta 10401 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 F{U7?ch#vp| diff --git a/data/asced_foe.rda b/data/asced_foe.rda index cc3683d68f69f834e571d4f14e705f6fc6a3a165..5094f04c4b2c474b096e397416789fee678ad52d 100644 GIT binary patch literal 5913 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 literal 5911 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 B12X^s delta 1230 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 literal 0 HcmV?d00001 diff --git a/man/auholidays.Rd b/man/auholidays.Rd new file mode 100644 index 0000000..20b1047 --- /dev/null +++ b/man/auholidays.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/auholidays.R +\docType{data} +\name{auholidays} +\alias{auholidays} +\title{Australian Public Holidays} +\format{ +A data frame with 776 rows and 3 variables: +\describe{ + \item{\code{Date}}{The date of the holiday} + \item{\code{Name}}{The name of the holiday} + \item{\code{Jurisdiction}}{Pipe seperated list of jurisdictions to which the holiday applies} +} +} +\source{ +\url{https://data.gov.au/data/dataset/australian-holidays-machine-readable-dataset} +} +\usage{ +auholidays +} +\description{ +Tidy data set of Australian Public Holidays +} +\keyword{datasets} diff --git a/man/clean_state.Rd b/man/clean_state.Rd new file mode 100644 index 0000000..9b53e87 --- /dev/null +++ b/man/clean_state.Rd @@ -0,0 +1,70 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/clean_state.R +\name{clean_state} +\alias{clean_state} +\alias{strayr} +\title{Convert Australian state names and abbreviations into a consistent format} +\usage{ +clean_state( + x, + to = "state_abbr", + fuzzy_match = TRUE, + max_dist = 0.4, + method = "jw" +) + +strayr(...) +} +\arguments{ +\item{x}{a (character) vector containing Australian state names or abbreviations or +a (numeric) vector containing state codes (1 = NSW, 2 = Vic, 3 = Qld, 4 = SA, +5 = WA, 6 = Tas, 7 = NT, 8 = ACT).} + +\item{to}{what form should the state names be converted to? Options are +"state_name", "state_abbr" (the default), "iso", "postal", and "code".} + +\item{fuzzy_match}{logical; either TRUE (the default) which indicates that +approximate/fuzzy string matching should be used, or FALSE which indicates that +only exact matches should be used.} + +\item{max_dist}{numeric, sets the maximum acceptable distance between your +string and the matched string. Default is 0.4. Only relevant when fuzzy_match is TRUE.} + +\item{method}{the method used for approximate/fuzzy string matching. Default +is "jw", the Jaro-Winker distance; see `??stringdist-metrics` for more options.} + +\item{...}{all arguments to `strayr` are passed to `clean_state`} +} +\value{ +a character vector of state names, abbreviations, or codes. +} +\description{ +Convert Australian state names and abbreviations into a consistent format +} +\details{ +`strayr()` is a wrapper around `clean_state()` and is provided for +backwards compatibility. `strayr()` is soft-deprecated, but will not be removed +for the foreseeable future. New code should use `clean_state()`. +} +\examples{ + +x <- c("western Straya", "w. A ", "new soth wailes", "SA", "tazz") + +# Convert the above to state abbreviations +clean_state(x) + +# Convert the elements of `x` to state names + +clean_state(x, to = "state_name") + +# Disable fuzzy matching; you'll get NAs unless exact matches can be found + +clean_state(x, fuzzy_match = FALSE) + +# You can use clean_state in a dplyr mutate call + +x_df <- data.frame(state = x, stringsAsFactors = FALSE) + +\dontrun{x_df \%>\% mutate(state_abbr = clean_state(state))} + +} diff --git a/man/is_holiday.Rd b/man/is_holiday.Rd new file mode 100644 index 0000000..8cc84f6 --- /dev/null +++ b/man/is_holiday.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/is_holiday.R +\name{is_holiday} +\alias{is_holiday} +\title{is_holiday} +\usage{ +is_holiday(date, jurisdictions = c()) +} +\arguments{ +\item{date}{Date, POSIXct object or a string that can be parsed with `parsedate::parse_date`} + +\item{jurisdictions}{Vector of state jurisdictions you wish to filter on, defaults to all of Australia} +} +\value{ +logical(`TRUE` or `FALSE`) vector +} +\description{ +Identifies if a given date is a public holiday in Australia +} +\examples{ +is_holiday('2020-01-01') +is_holiday('2019-05-27', jurisdictions=c('ACT', 'TAS')) +h_df <- data.frame(dates = c('2020-01-01', '2020-01-10')) +h_df \%>\% + dplyr::mutate(IsHoliday = is_holiday(dates)) +} diff --git a/tests/testthat/test-clean_state.R b/tests/testthat/test-clean_state.R new file mode 100644 index 0000000..e30b768 --- /dev/null +++ b/tests/testthat/test-clean_state.R @@ -0,0 +1,51 @@ +test_that("clean_state() returns expected output", { + + expect_equal(clean_state(1), "NSW") + + expect_equal(clean_state("1"), "NSW") + + expect_equal(clean_state("NSW", to = "state_abbr"), "NSW") + + expect_equal(clean_state("New South Wales", fuzzy_match = FALSE), "NSW") + + expect_equal(clean_state("Noo Soth Whales"), "NSW") + + expect_equal(clean_state("Noo Soth Whales", fuzzy_match = FALSE), NA_character_) + + expect_equal(class(clean_state("NSW", "code")), "character") + + x <- c("western Straya", "w. A ", "new soth wailes", "SA", "tazz") + + expect_length(clean_state(x), 5) + + + expect_equal(clean_state("South Australia"), "SA") + expect_equal(clean_state("Australia"), "Aus") + expect_equal(clean_state("South Aus"), "SA") + expect_equal(clean_state("Aus"), "Aus") + + expect_equal(clean_state("other"), "Oth") + expect_equal(clean_state("oth"), "Oth") + + + expect_equal(clean_state(c("Aus", "NSW", "Vic", "Qld", "WA", "SA", "Tas", "ACT", "NT", "OTH")), + c("Aus", "NSW", "Vic", "Qld", "WA", "SA", "Tas", "ACT", "NT", "Oth")) + + expect_identical(clean_state("NA"), NA_character_) + expect_identical(clean_state("n a "), NA_character_) + expect_equal(clean_state(c("Aus", "SA", "not applicable")), + c("Aus", "SA", NA_character_)) + +}) + +test_that("strayr() returns identical output to clean_state()",{ + state_names <- c("western Straya", "w. A ", "new soth wailes", "SA", "tazz", + "Aus", "NSW", "Vic", "Qld", "WA", "SA", "Tas", "ACT", "NT", "OTH") + + expect_identical(clean_state(state_names), + suppressWarnings(strayr(state_names))) + + # strayr() should remain deprecated + expect_warning(strayr(state_names)) + +}) diff --git a/tests/testthat/test-is_holiday.R b/tests/testthat/test-is_holiday.R new file mode 100644 index 0000000..134e6f9 --- /dev/null +++ b/tests/testthat/test-is_holiday.R @@ -0,0 +1,20 @@ +test_that("is_holiday returns expected output for single numbers", { + # Test 2020 numbers + expect_true(is_holiday("2020-01-01")) + expect_false(is_holiday("2020-01-19")) + + # Test 2014 numbers + expect_true(is_holiday("2014-06-09")) + + # Test jurisdiction only + expect_true(is_holiday("2019-05-27", jurisdictions = c("ACT", "NSW"))) + expect_false(is_holiday("2019-05-27", jurisdictions = c("TAS"))) + + # Test with time + expect_true(is_holiday("2020-01-01 12:45")) +}) + +test_that("is_holiday returns errors for poor values", { + expect_error(is_holiday(NA)) + expect_error(is_holiday("Australia Day")) +}) From 228e6b254c471df03471093d43a3adc4bf326ad7 Mon Sep 17 00:00:00 2001 From: wfmackey Date: Mon, 31 May 2021 09:53:32 +1000 Subject: [PATCH 2/2] rebuild README --- README.Rmd | 4 +- README.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 108 insertions(+), 7 deletions(-) diff --git a/README.Rmd b/README.Rmd index e72472d..0705332 100644 --- a/README.Rmd +++ b/README.Rmd @@ -33,7 +33,7 @@ data easier. This includes: - tidy versions of common structures used by the Australian Bureau of Statistics (ABS), like ANZSIC and ANZSCO: -- a function to tidy up state names (`clean_states()`; and +- a function to tidy up state names (`clean_states()`); and - a function that knows whether particular dates are public holidays (`is_holiday()`). @@ -193,7 +193,7 @@ str(auholidays) is_holiday('2020-01-01') -is_holiday('2019-05-27', jurisdictions=c('ACT', 'TAS')) +is_holiday('2019-05-27', jurisdictions = c('ACT', 'TAS')) h_df <- data.frame(dates = c('2020-01-01', '2020-01-10')) diff --git a/README.md b/README.md index 1dd33b4..1c5a52b 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,23 @@ experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) [![R build status](https://github.com/runapp-aus/abscorr/workflows/R-CMD-check/badge.svg)](https://github.com/runapp-aus/abscorr/actions) + -The `abscorr` package provides tidy versions of common structures used -by the Australian Bureau of Statistics (ABS). +The `abscorr` package provides tools to make working with Australian +data easier. This includes: + +- tidy versions of common structures used by the Australian Bureau of + Statistics (ABS), like ANZSIC and ANZSCO: + +- a function to tidy up state names (`clean_states()`); and + +- a function that knows whether particular dates are public holidays + (`is_holiday()`). This package is currently **in development** and subject to change. The -lifecycle badge will be changed to `stable` when structures are stable -(should be relatively soon). +lifecycle badge will be changed to `stable` when it is stable (should be +relatively soon). **Contribute to this package**: people are actively encouraged to contribute to this package. @@ -80,7 +89,7 @@ the following structures *and their geometry* as `sf` objects: - `dz2011`: Census of Population and Housing Destination Zones 2011 - `dz2016`: Census of Population and Housing Destination Zones 2016 -## Using `abscorr` +## Using ABS structures Loading the package will lazily load the structures listed above. Call them with their name: @@ -158,3 +167,95 @@ glimpse(ced2018) #> $ cent_lat -33.96482, -33.94082, -33.79360, -33.56993, -33.89634, -… #> $ geometry [151.01558, 151.01209, 151.00812, 151.00593, 151.00422,… ``` + +## Converting state names and abbreviations + +The `clean_state()` function makes it easy to wrangle vectors of State +names and abbreviations - which might be in different forms and possibly +misspelled. + +Let’s start with a character vector that includes some misspelled State +names, some correctly spelled state names, as well as some abbreviations +both malformed and correctly formed. + +``` r +x <- c("western Straya", "w. A ", "new soth wailes", "SA", "tazz", "Victoria", + "northn territy") +``` + +To convert this character vector to a vector of abbreviations for State +names, use `clean_state()`: + +``` r +clean_state(x) +#> [1] "WA" "WA" "NSW" "SA" "Tas" "Vic" "NT" +``` + +If you want full names for the states rather than abbreviations: + +``` r +clean_state(x, to = "state_name") +#> [1] "Western Australia" "Western Australia" "New South Wales" +#> [4] "South Australia" "Tasmania" "Victoria" +#> [7] "Northern Territory" +``` + +By default, `clean_state()` uses fuzzy or approximate string matching to +match the elements in your character vector to state +names/abbreviations. If you only want to permit exact matching, you can +disable fuzzy matching. This means you will never get false matches, but +you will also fail to match misspelled state names or malformed +abbreviations; you’ll get an `NA` if no match can be found. + +``` r + clean_state(x, fuzzy_match = FALSE) +#> [1] NA NA NA "SA" NA "Vic" NA +``` + +If your data is in a data frame, `clean_state()` works well within a +`dplyr::mutate()` call: + +``` r + x_df <- data.frame(state = x, stringsAsFactors = FALSE) + +library(dplyr) + x_df %>% + mutate(state_abbr = clean_state(state)) +#> state state_abbr +#> 1 western Straya WA +#> 2 w. A WA +#> 3 new soth wailes NSW +#> 4 SA SA +#> 5 tazz Tas +#> 6 Victoria Vic +#> 7 northn territy NT +``` + +## Australian public holidays + +This package includes the `auholidays` dataset from the [Australian +Public Holidays Dates Machine Readable +Dataset](https://data.gov.au/data/dataset/australian-holidays-machine-readable-dataset) +as well as a helper function `is_holiday`: + +``` r +str(auholidays) +#> tibble[,3] [879 × 3] (S3: tbl_df/tbl/data.frame) +#> $ Date : Date[1:879], format: "2021-01-01" "2021-01-26" ... +#> $ Name : chr [1:879] "New Year's Day" "Australia Day" "Canberra Day" "Good Friday" ... +#> $ Jurisdiction: chr [1:879] "ACT" "ACT" "ACT" "ACT" ... + + +is_holiday('2020-01-01') +#> [1] TRUE +is_holiday('2019-05-27', jurisdictions = c('ACT', 'TAS')) +#> [1] TRUE + +h_df <- data.frame(dates = c('2020-01-01', '2020-01-10')) + +h_df %>% + mutate(IsHoliday = is_holiday(dates)) +#> dates IsHoliday +#> 1 2020-01-01 TRUE +#> 2 2020-01-10 FALSE +```