From 321f9edde131094abd260bef0f3e8711d3509efa Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:31:06 -0400 Subject: [PATCH 1/9] Add ids_list_series() --- .Rbuildignore | 1 + NAMESPACE | 1 + R/ids_list_series.R | 19 +++++++++++++++++++ R/sysdata.rda | Bin 0 -> 4354 bytes data-raw/wbids_data.R | 33 +++++++++++++++++++++++++++++++++ man/ids_list_series.Rd | 23 +++++++++++++++++++++++ 6 files changed, 77 insertions(+) create mode 100644 R/ids_list_series.R create mode 100644 R/sysdata.rda create mode 100644 data-raw/wbids_data.R create mode 100644 man/ids_list_series.Rd diff --git a/.Rbuildignore b/.Rbuildignore index 7e93035..feb8766 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -9,3 +9,4 @@ ^Meta$ ^\.github$ _pkgdown.yml +^data-raw$ diff --git a/NAMESPACE b/NAMESPACE index ec522b8..3cea746 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,5 +1,6 @@ # Generated by roxygen2: do not edit by hand +export(ids_list_series) import(cli) import(dplyr) import(httr2) diff --git a/R/ids_list_series.R b/R/ids_list_series.R new file mode 100644 index 0000000..303a185 --- /dev/null +++ b/R/ids_list_series.R @@ -0,0 +1,19 @@ +#' List Available Series from the World Bank International Debt Statistics API +#' +#' This function returns a tibble with available series from the World Bank International Debt Statistics +#' (IDS) API. Each series provides data on various debt-related indicators. +#' +#' @return A tibble with two columns: +#' \describe{ +#' \item{series_id}{The unique identifier for the series (e.g., "BN.CAB.XOKA.CD").} +#' \item{series_name}{The name of the series (e.g., "Current account balance (current US$)").} +#' } +#' +#' @export +#' +#' @examples +#' ids_list_series() +#' +ids_list_series <- function() { + series +} diff --git a/R/sysdata.rda b/R/sysdata.rda new file mode 100644 index 0000000000000000000000000000000000000000..b038d6979909e974b6485b591c46e515542ae500 GIT binary patch literal 4354 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 iy4UzUxsJ5i|K|Mp$UEPiDBn|Bu>~q*FK(@U+ + bind_rows() |> + select( + series_id = "id", + series_name = "value" + ) + +ids_list_series <- function() { + series +} + +# Prepare counterpart data -------------------------------------------------------------------- + + +# Prepare series-topics data ------------------------------------------------------------------ + + +# Store all data in single rda file ----------------------------------------------------------- + +# TODO: add other data sources later here as well + +usethis::use_data( + series, + overwrite = TRUE, internal = TRUE +) diff --git a/man/ids_list_series.Rd b/man/ids_list_series.Rd new file mode 100644 index 0000000..31ca046 --- /dev/null +++ b/man/ids_list_series.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ids_list_series.R +\name{ids_list_series} +\alias{ids_list_series} +\title{List Available Series from the World Bank International Debt Statistics API} +\usage{ +ids_list_series() +} +\value{ +A tibble with two columns: +\describe{ +\item{series_id}{The unique identifier for the series (e.g., "BN.CAB.XOKA.CD").} +\item{series_name}{The name of the series (e.g., "Current account balance (current US$)").} +} +} +\description{ +This function returns a tibble with available series from the World Bank International Debt Statistics +(IDS) API. Each series provides data on various debt-related indicators. +} +\examples{ +ids_list_series() + +} From dd6b3908830b77a149784d2956c1431fbedd7c1a Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:42:54 -0400 Subject: [PATCH 2/9] Add additional columns to series and series_topics data --- R/sysdata.rda | Bin 4354 -> 16680 bytes data-raw/wbids_data.R | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/R/sysdata.rda b/R/sysdata.rda index b038d6979909e974b6485b591c46e515542ae500..135dc125b40040769cfb9cc86abe054e6e8da7b3 100644 GIT binary patch literal 16680 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 CD=U=% literal 4354 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 iy4UzUxsJ5i|K|Mp$UEPiDBn|Bu>~q*FK(@U+ series_name = "value" ) -ids_list_series <- function() { - series -} +# pak::pak("tidy-intelligence/r-wbwdi") +indicators <- wbwdi::wdi_get_indicators() + +series_extended <- series |> + left_join(indicators, join_by(series_id == indicator_id)) + +series <- series_extended|> + select(series_id, series_name, source_id, source_name, source_note, source_organization) # Prepare counterpart data -------------------------------------------------------------------- # Prepare series-topics data ------------------------------------------------------------------ +series_topics <- series_extended |> + select(series_id, topics) |> + tidyr::unnest(topics) # Store all data in single rda file ----------------------------------------------------------- # TODO: add other data sources later here as well usethis::use_data( - series, + series, series_topics, overwrite = TRUE, internal = TRUE ) From eef0eb8f853d0842dfcab3ed7a0de7e96d67e9b5 Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:47:49 -0400 Subject: [PATCH 3/9] Add ids_list_series_topics() --- R/ids_list_series.R | 6 +++++- R/ids_list_series_topics.R | 21 +++++++++++++++++++++ man/ids_list_series.Rd | 23 +++++++++++++++++++++-- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 R/ids_list_series_topics.R diff --git a/R/ids_list_series.R b/R/ids_list_series.R index 303a185..f09d54d 100644 --- a/R/ids_list_series.R +++ b/R/ids_list_series.R @@ -3,10 +3,14 @@ #' This function returns a tibble with available series from the World Bank International Debt Statistics #' (IDS) API. Each series provides data on various debt-related indicators. #' -#' @return A tibble with two columns: +#' @return A tibble containing the available series and their metadata: #' \describe{ #' \item{series_id}{The unique identifier for the series (e.g., "BN.CAB.XOKA.CD").} #' \item{series_name}{The name of the series (e.g., "Current account balance (current US$)").} +#' \item{source_id}{The ID of the data source providing the indicator.} +#' \item{source_name}{The name or description of the source of the indicator data.} +#' \item{source_note}{Additional notes or descriptions about the data source.} +#' \item{source_organization}{The organization responsible for the data source.} #' } #' #' @export diff --git a/R/ids_list_series_topics.R b/R/ids_list_series_topics.R new file mode 100644 index 0000000..571300f --- /dev/null +++ b/R/ids_list_series_topics.R @@ -0,0 +1,21 @@ +#' List Available Series-Topic combinations from the World Bank International Debt Statistics API +#' +#' This function returns a tibble with available series-topic combinations from the World Bank +#' International Debt Statistics (IDS) API. Each row provides a mapping from series to topic, with +#' the possibility of multiple topic per series. +#' +#' @return A tibble containing the available series and their topics: +#' \describe{ +#' \item{series_id}{The unique identifier for the series (e.g., "BM.GSR.TOTL.CD").} +#' \item{topic_id}{The unique identifier for the topic (e.g., 3).} +#' \item{topic_name}{The name of the topic (e.g., "External Debt").} +#' } +#' +#' @export +#' +#' @examples +#' ids_list_series() +#' +ids_list_series <- function() { + series_topics +} diff --git a/man/ids_list_series.Rd b/man/ids_list_series.Rd index 31ca046..52b0653 100644 --- a/man/ids_list_series.Rd +++ b/man/ids_list_series.Rd @@ -1,23 +1,42 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/ids_list_series.R +% Please edit documentation in R/ids_list_series.R, R/ids_list_series_topics.R \name{ids_list_series} \alias{ids_list_series} \title{List Available Series from the World Bank International Debt Statistics API} \usage{ +ids_list_series() + ids_list_series() } \value{ -A tibble with two columns: +A tibble containing the available series and their metadata: \describe{ \item{series_id}{The unique identifier for the series (e.g., "BN.CAB.XOKA.CD").} \item{series_name}{The name of the series (e.g., "Current account balance (current US$)").} +\item{source_id}{The ID of the data source providing the indicator.} +\item{source_name}{The name or description of the source of the indicator data.} +\item{source_note}{Additional notes or descriptions about the data source.} +\item{source_organization}{The organization responsible for the data source.} +} + +A tibble containing the available series and their topics: +\describe{ +\item{series_id}{The unique identifier for the series (e.g., "BM.GSR.TOTL.CD").} +\item{topic_id}{The unique identifier for the topic (e.g., 3).} +\item{topic_name}{The name of the topic (e.g., "External Debt").} } } \description{ This function returns a tibble with available series from the World Bank International Debt Statistics (IDS) API. Each series provides data on various debt-related indicators. + +This function returns a tibble with available series-topic combinations from the World Bank +International Debt Statistics (IDS) API. Each row provides a mapping from series to topic, with +the possibility of multiple topic per series. } \examples{ ids_list_series() +ids_list_series() + } From 64d0278c25ae0a53026214ec750a797adc29ba4c Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:51:28 -0400 Subject: [PATCH 4/9] Update wbids_data.R --- data-raw/wbids_data.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data-raw/wbids_data.R b/data-raw/wbids_data.R index 3718ba0..5f1477b 100644 --- a/data-raw/wbids_data.R +++ b/data-raw/wbids_data.R @@ -7,7 +7,7 @@ devtools::load_all() series_raw <- perform_request("series") -series <- series_raw[[1]]$concept[[1]]$variable |> +series_processed <- series_raw[[1]]$concept[[1]]$variable |> bind_rows() |> select( series_id = "id", @@ -17,7 +17,7 @@ series <- series_raw[[1]]$concept[[1]]$variable |> # pak::pak("tidy-intelligence/r-wbwdi") indicators <- wbwdi::wdi_get_indicators() -series_extended <- series |> +series_extended <- series_processed |> left_join(indicators, join_by(series_id == indicator_id)) series <- series_extended|> From 1fc0f087ba48b3e0b865e9712480dc136891e802 Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:55:31 -0400 Subject: [PATCH 5/9] Fix wrong documentation for ids_list_series_topics() --- NAMESPACE | 1 + R/ids_list_series_topics.R | 4 ++-- man/ids_list_series.Rd | 17 +---------------- man/ids_list_series_topics.Rd | 25 +++++++++++++++++++++++++ 4 files changed, 29 insertions(+), 18 deletions(-) create mode 100644 man/ids_list_series_topics.Rd diff --git a/NAMESPACE b/NAMESPACE index 3cea746..8d18fce 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,6 +1,7 @@ # Generated by roxygen2: do not edit by hand export(ids_list_series) +export(ids_list_series_topics) import(cli) import(dplyr) import(httr2) diff --git a/R/ids_list_series_topics.R b/R/ids_list_series_topics.R index 571300f..c886d18 100644 --- a/R/ids_list_series_topics.R +++ b/R/ids_list_series_topics.R @@ -14,8 +14,8 @@ #' @export #' #' @examples -#' ids_list_series() +#' ids_list_series_topics() #' -ids_list_series <- function() { +ids_list_series_topics <- function() { series_topics } diff --git a/man/ids_list_series.Rd b/man/ids_list_series.Rd index 52b0653..05044c2 100644 --- a/man/ids_list_series.Rd +++ b/man/ids_list_series.Rd @@ -1,11 +1,9 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/ids_list_series.R, R/ids_list_series_topics.R +% Please edit documentation in R/ids_list_series.R \name{ids_list_series} \alias{ids_list_series} \title{List Available Series from the World Bank International Debt Statistics API} \usage{ -ids_list_series() - ids_list_series() } \value{ @@ -18,25 +16,12 @@ A tibble containing the available series and their metadata: \item{source_note}{Additional notes or descriptions about the data source.} \item{source_organization}{The organization responsible for the data source.} } - -A tibble containing the available series and their topics: -\describe{ -\item{series_id}{The unique identifier for the series (e.g., "BM.GSR.TOTL.CD").} -\item{topic_id}{The unique identifier for the topic (e.g., 3).} -\item{topic_name}{The name of the topic (e.g., "External Debt").} -} } \description{ This function returns a tibble with available series from the World Bank International Debt Statistics (IDS) API. Each series provides data on various debt-related indicators. - -This function returns a tibble with available series-topic combinations from the World Bank -International Debt Statistics (IDS) API. Each row provides a mapping from series to topic, with -the possibility of multiple topic per series. } \examples{ ids_list_series() -ids_list_series() - } diff --git a/man/ids_list_series_topics.Rd b/man/ids_list_series_topics.Rd new file mode 100644 index 0000000..4f2ad0c --- /dev/null +++ b/man/ids_list_series_topics.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ids_list_series_topics.R +\name{ids_list_series_topics} +\alias{ids_list_series_topics} +\title{List Available Series-Topic combinations from the World Bank International Debt Statistics API} +\usage{ +ids_list_series_topics() +} +\value{ +A tibble containing the available series and their topics: +\describe{ +\item{series_id}{The unique identifier for the series (e.g., "BM.GSR.TOTL.CD").} +\item{topic_id}{The unique identifier for the topic (e.g., 3).} +\item{topic_name}{The name of the topic (e.g., "External Debt").} +} +} +\description{ +This function returns a tibble with available series-topic combinations from the World Bank +International Debt Statistics (IDS) API. Each row provides a mapping from series to topic, with +the possibility of multiple topic per series. +} +\examples{ +ids_list_series_topics() + +} From 3325c12ec3e703c65d4a8b915172c5c4e43f048b Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:53:23 -0400 Subject: [PATCH 6/9] Update data-model.qmd --- vignettes/data-model.qmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vignettes/data-model.qmd b/vignettes/data-model.qmd index e137a5d..308eee1 100644 --- a/vignettes/data-model.qmd +++ b/vignettes/data-model.qmd @@ -37,6 +37,7 @@ erDiagram SERIES { string series_id PK string series_name + int source_id string source_note string source_organization } @@ -99,7 +100,7 @@ erDiagram |-----------------|--------------------|----------------------------------| | series_id | Unique identifier for the data series | DT.DOD.DPPG.CD | | series_name | Name of the series | External debt stocks, public and publicly guaranteed (PPG) (DOD, current US\$) | -| series_description | Detailed description of the series | Public and publicly guaranteed debt comprises long-term external obligations of public debtors, including the national government, political subdivisions (or an agency of either), and autonomous public bodies, and external obligations of private debtors that are guaranteed for repayment by a public entity. | +| source_id | Unique identifier for the data source | 2 | | source_note | Note about the data source | Public and publicly guaranteed debt comprises long-term external obligations of public debtors, including the national government, Public Corporations, State Owned Enterprises, Development Banks and Other Mixed Enterprises, political subdivisions (or an agency of either), autonomous public bodies, and external obligations of private debtors that are guaranteed for repayment by a public entity. Data are in current U.S. dollars. | | source_organization | Organization responsible for the data series | World Bank, International Debt Statistics. | From 73e0f591788ba4aa36edbaf8ae796930c0d61924 Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:58:12 -0400 Subject: [PATCH 7/9] Create global-variables.R --- R/global-variables.R | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 R/global-variables.R diff --git a/R/global-variables.R b/R/global-variables.R new file mode 100644 index 0000000..f5bfedc --- /dev/null +++ b/R/global-variables.R @@ -0,0 +1,5 @@ +# We only use system data objects as global variables. +# See https://cran.r-project.org/web/packages/dplyr/vignettes/in-packages.html +# For data masking, import .data from rlang and then use .data$var instead of var. +# For tidy selection, use "var" instead of var. +utils::globalVariables(c("series", "series_topics")) From df421f48756aff40121ea106eba290387df3d1ee Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Sat, 19 Oct 2024 15:40:19 -0400 Subject: [PATCH 8/9] Update sysdata.rda --- R/sysdata.rda | Bin 16680 -> 16707 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/R/sysdata.rda b/R/sysdata.rda index 135dc125b40040769cfb9cc86abe054e6e8da7b3..02080f605c2267be391548bb1248b9c114e45d47 100644 GIT binary patch literal 16707 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 literal 16680 zcmaKU1z4L)w=OkmPzog!r#J);#jO-~OK>R?T#6PgHMD3TxDU(lyU{rd+CP4V7-WP(u=!UA^h70oXD*_^1^O=b66kkk~n7nl@ zUC{#?%lE3n3ld*7-VtbP-+yomh?SFlK@NHTiTVz~4Lu5in;+g;zaqF(dNY#LCA5m* z%LDQ+UkH9UX;5b~CqqX@HIIXE70_PtOhpj3Q!GijjHl9eSZ*FQ9cbFKP0 z$lgD%!+!MQ)94{p{s3iRN;D;uSVq@jEsrzGk@|TmwVwvHe`+H3whi`v0vp>feIDDB z8}x;2PY4UO^hRCSeoW>(=_=u53w?L%#b0gt7v1>sAE|%EgbA165(G8za{_`N1onUP z2;UJ95Ty|i5dVXu{wuyO1-v7;l;2VUG7{ccZ9_)+eKJ;9IRFV}@ZgzvrsNSU5RdkxFC=c)Sb=LL3RQnH? zm}i&IDuVoiWnvNg{&QG=QFr&c%a@9>mn(ZM30Hg{0B)f{QWsZvdg&E=(iJ!)z0J&A zDVa87+C6uYhjL24q0egKaVL`tGgl7dlXXqF3u3evC}-cvLfu-91Qa73IS}R5ic@-U z_?2b$tlij|hB{Q?m60IudsM>Oewvd8ja9NKj>^20w2%qk%6#q?EYq@dnO$^n^`y%? zPWy_)o%)Mb^-E@k#B*LLKHOVC=%{=KeAy$B%cgA{ zY6J=ctLImBb@k}QI6ZN4FEcSSad9J*ZiJtas_2tPHl0!&B3MNd3-^6(b!bw-eXROZ zL&(=c@u|vP;9`?D&eWTAHdcATg5$KXUO~`O4?)BUSV18=&yizFp_Dr0oyudXxI$R* zn1Fpb8$YG@77v-+-Na3zH_*iKTncRUfe!`FGO}~13`ePMAA&17<*3!hJ z3PgEX4aB&$F&Cq(W~~j@Q4Qs0O|U6^NCVVX{N8VaHPI8CGo%&XuzqZV`Bd7c&uj@i=+`wwS+>Fj4g!Hmj{|9 zoimjrZJf_I6Mbu^1d*SC6Z>Oko$HmW0TM$+>8vO1Q}hnYP0W*B8ij^N5NJ~B=j3GG z)8ig7IxIW*C~shK3f9M6Ewy!GB~0_wyQ(SLW`uXXDBpa0l6}Eu+eQ&MAbOEKkj-p z?QO}G#A$nmn24lOoh%tl!RFOaWoeBppB{+@GdJWuRn_~oDUl(=+`AM*M|qxJqe(12 z&F55HM%LVQ5X!a?{%J7r&b^sly3uX=C;;((5)}x*NM!hBkijP7>JjbN{-&$RgYU;1b*)|H%~NwuQR{$hGEk5> zAqklZ$C9uIn9 zK92LXoJjd@?hBIn&alp zEp!o^@u?}gB1h$Y5>Cc25=mX+X1r2N%nX$1APX-d6dO#lTc2m<2h2dEpY!@4ydW8I zGkPsFL0evoQ<~lBb5mnu)jk`_-hf)H4v9Ed(H$ynsFJ;yHcqEZVd(!szq1s2QKZb zHHobw|!7um* zRMTVck>Y-+&J+XS8Ga>5Xw$d^Z~WUn7nb`$n4=&8+l}fu3_RM^OjMbn+q)EbT<6ks z1}rM9zEwz$5^DBsx>BWWFa@TKqtXLsTwUt#ofV@75F5jOazRs4p0PrvILgO36-;qy zxUG?dlSB1J^r`r2<~_d3GO>NUjZ!+3G^ZHp)^1R9pX+pwa}BR87iC{VbiWBt(s@A8 zan+|J73p9b_FmZurWm|H9m`sQUdyBOC6{ptKZq$*XXh7IAjyW3v`dbx0%0WENysyK zw7s~$lH5>akoh_%ivwk{Hr>8*CUvpE>Kkx&^4QLT`$Ye2d2Gu~Fau93x?s|ET(%If z5Syd*xckPdnJ~XilLf6Hj;9GrQ)$&|&6I;lmBz1 zq@7#}t|{WOH8UH6KY0|<65HZPFR`0tsDdBofn;3-|8AYhcPi}p_aW)`{hePAFE;uBcADTtTE ztZ$3g3w0gTRW_{ejSm~3(GAWjF7b1M-G2LCTEY$S2hLl#uSEiHdUiP%xTlJ=*nHgU zSe1WIbsA4_eQ8q5?VAmGK+a!aeB7qmWW39?_SAT+7EP$H@}n(NbX;OI6JT?ezvgEA z=0yceA@L}4$Y5mML2Puj2(2lE^E+(t)Yi(}_deLpa*J8fmm4Z2lpHt=|9NoXr>`a; z3GUIM=%gDx1@COkZN;628>t^Xo4Og;qL3ZEH}ok7Z?r%U=jv_{cj|@j^lqjVxTzKe zzT6i$p|-V&vzIIFCGp^SEV*Sv@~M}E&+Ob|x06fSCo2`M#Q!F| zzF|M2U(!#~?ejR6C01|=AFJh-KK=uyB!1YOW%0q=A=4myx8Tvyn`0d_$CyZs+Qqdu zF5n?D6e=){ud1=JUg)_8A%%(f_g+gH-BH+4)UzQvrPA|b^9i&a3G85Lm6pTlL8ef# z2Hd)fC6v&5YAqgLF$JycHatG3TpqId8jY0Nz`CzsNTdP{&~Nz~K*xF|l0lL+=JXbR zU3-!1S`9Ftxi&bxC@X>sOP-dCHFzjstzIlP>b_kp^%lh2f(yv&M)tW@Y33&}&u|s$ zfWB;%(A0O|GrV^m;O}I*jgr<1(pk)am_2p;@v}Uu9`_`{)YJr^QLj0KT*{uV;%}%o+X4!ST+84? z`#1R(mTkbxkd6YR%Dvk8&0 z-z-{;|KsqcXwS;+)MwVi(^(CfM~tW;aqeP}T9p#KF-YTV8*QN3l>KN#b7qm9Vi=G9 z?#L*Wp~8$h8PpFC{Bw6`OETuv4oHb`S_s(WmGBMZaRfDHtRGvI#Bf#XRFk-DL_{6W zm+V4>vX)4S(9+_jJ{v=5XZKln;UHIANuDchMx(Y5Fx_-1Roe$`!DT_zW!)RO{N+~? z-MS#Bp2l;mYV@^taY0k%)~A2h1WY`M&>WZNiSS~_N*o=;FW_OX4-Z#>)1@u?ORl!N z{`+&&n6KO8o>8x@`g&YlTzvP`*E2b!LOh#lkNi(Pv5p$v2jc;}P-E&QxaRCsAbpTt zpflm6DTnnq!2G*~QZMNT66biTAqMFo$bhM!hpkQjcaEl|t@lo7|A%UiEtmAEe+H)I zC$Kxspe5F1SB7WdW!j!=8M-x1jaT&~(xrS{Kh`E!_Jb}AZU+W6Hb3*{aDs2IkMX4s zxcLNv@Fm3Djogw?lQ~RUvg?(sr_(guL-gdIAK!DH8 z&l`LY%i~6k6;E*6{kGPEW_|Gn;=U}|jQ%S%V?zuzv-NQAzyNOsi!TQ+_X^(Zg1vAp zx@rr}8~wlzJ}wps{R!-C0ah)@;n^u0$`)YU&Sa7rQYrXg!1n7QQE8+#+$Gzz19JrAUN(&&=XQ;iZaB4b`9+l4Omo>Yp?a+mz5 zfM%40*VxH1$B7nN=+mLnH-_5@zdp0Xz871Wt4qBmPeDPkf!f?oYT?zX&(u5%4O~qP zfi5w>Nf&)#a->HjA=}Fy89cz6E|D(ZGZ@R3df?!~Sxd6?>HcAj$4XI_g$`lBiaFlo z11d~8!}MT-4prltX7zCeI$Ij&b!uTDD6JbHG;_SaX6=%Zgz|1?DX*db4I>G5W8jqz zluun-nK@)2kA`%0^i>juv-+vMH?8dsF%Cm=U8 z@)4V1cJA-}a&vKv)^kYzRJ$#v4_Q6nfp8zp^sR34GV|D**GyMmp2FWXmoRl5gKMyB zxVv#7g{OU9<*Koktviow&_5O}N9s?pDl$dokqQfs*oL4VZwpBS(B3{dohz!Gm*ye z=7#aI*q}Vsv zzmG~k-&=`;6MVBtf58%P zWtGQ%X+z(g&^&=@PE>OXs+Cfg{s*3Cj@4kVUM_>Z^`-c`;}!A&pQjwQR$?7bv|^X3 z1RpR(gf^-nzUOj8GKK#YMELnP&A((}`qy*HQe9wv`01a#5Pja0R!5#jXGbY@CQ7n& z`&aV(Oq8TV_my9%&{6^(e@hI#Ef+r$Md0%OTg=um6D7cXW_D37y6ao`KgfI6fSZi( zAOByBTa0uwTYpKq&GPyo$M@-bp|_%5Gf@&Tzvk=`B_+BSdgoti?j^$hRn+qS8(w*S zzJRXn*Y!a8-)!Qp^YQNka5%2`9)KAO)4*tyGYc&pdA>WxcFhcac&@a9a|a?kM$OWA zT+1*RbD=C~Avb!cu4j?HoCdrBxReC;w%LB;$W9K_w`XJo60wp>BFx`1iC; z|KE-&>hpuIs@1A+t~;+<$rVWDb;v=s;vR`7297J9jWg+`sR?Yh>OBd9Y}U;{?C(p; zNxy#Mr0f_$c?OY1r{xOG*^SJ}(`J)K4+bvr4H) zrmIl2og3@Vg&6uLHAPQpS42N%-Kr_TJ+WrPO&MPr66?JMokWmDJqIOq=g?oB2IHb>#ZzUgB+4^yW z*{gM+&TQH@_fk5Eg~865DFe&{2+O#_Yr~ODT~l~_gy_s5+{=D-oZQruYI<#Oe!ZTn zc6CA`qwZ-csJ_mQwrmE|H3m)fuhmEb7UGoW!MpU7HDHVTy5f$in!{E`uL|J0riD@6 z=GE9IW@0$32ne=jgM4I1oK$KBt$4AU+Vo1x&N~4+=pB$`Q(z=%SOS^fbFQ{#=F=)4 zqB~Jx{t+=GKH0a>=kvzI$2-%+cDhgvR*C3SlQ^}V*`^UBGKkRMTP*8cW~(zb^~}qk z?$6|}d}?P_G3jWN>Qy^Yal z0po6CJzh>NR+6V^SJ!R&(1CH!{=-y}&fhI0ZhiM}?V-hns?JDiStP6(ypK)a(nNW6 zYi2mscGJ2e7HHkOkWud4)F^>&+W#M`o1tB+hTRQ_SeQ9ZbBCC^cV$2fXx)ndkZxLs zPRO-{|74;&^rh^68J&bxG+6JDeLWG4)`~hKkefjRHh~KMaLWW}v`gGZX?XB3ov{4)oSxAZI zBlgp$t5+<60IOpFVYJr?V{a**lR(OGIw{JvF3|(cap%;UnS9s0#k*O*M_pH zj`p*rH(Xl^b37@JnGsm}m$;=UKkK3-I%J_hi~#yUH?1{wm!v=}k=IUpbpTL>-GK#; z{ycm({-b(fv3ko__P7}%m0?}uDpqD4BcN~7+v8aNAEtMJn1WOYxrU>iiZsQoVe-+} zT_lQgj}cucS`r#Tu2|!y`qsQQ&6)s{4F-8tIEYsVcQ+chS$@c>flFX`iD;Bg9>GQ; z7Gj>yBWf3-MG+{`1x+9_M)bcheGO|4JQ7G!irV}GGFg}>E|eTfHo5xxjCXbxiYV7& zGDQzFtP91x7HaO440_di`HqQS%V1!}>y6Py)ltaMp*LDN9G9-Mh z+hZiG`zSZ33I(QOgiNht{?(j+%aiQs?u3{%^V$CI; zcQ^d!NS{7PC~Ua4{r^ytzgY`W2DDD*k%+a`z5imd|Iv(2xUIdpB`kf6CS!lptnpZNsWo*P8faB+SgHqzglh;C@(7d!#J<5_ z1`BSnE46V*J=zPa>Nr6(!KFVI&0XADn(NrG59NNx=@9NuUbd-BeoEoLox-mo zE6hp_OS57iX6GdXNKD_poTTe_d|y8>eHGUQGWB}O|B6F^0LJ2Rxi0P;a3QqER;aeye0ieP@|Kf*Y1S|! z2*co_TA*7}YTrfq4L#%KFO01|&Q?7_?|YvgUOV{JO)bz{^27_kO9Vh05dsG0QKH|o z0cEd`wad8r9INitGqzBy*VRlpJ*vsOaBtABr{{Zn*}ZAJDsh?FxQw}*S#goacz)@u z|0i3bY00bhNC#%G^w6%gxO`gV!|#1D47NOZO2ciOY^IS!MCVNpKi=zi&XV_IN0fh7 z*`?x5(m-yNXPx{{AF$?U{HS9E?j9Qg%_OFOz#bFE<=iOcVYxzc+S+QkDfriN*{)Z0 zei^Bjqf9APiEO_Pkr$1&stc!^7DL`n#DSk|W#S_jLvH z6|gA^`2NEc{PcIQ)t}eH7~v_6lE^YAV*Tn+q;Wf>%n~tHUI1}2#9jMQ*6YBry43lf zSjc#c`fq475NX_nxc2aW6)4xyEmioZ&^7*FIBLlCX#NY>sTzxAyq+_Ei&p&$_ixO# z+JDPJBt-lJD*i|8^-BG}D9pc>{qOpI#W@*{AgW6pul+x&jkFQ}OPhvAPsTr8pCPc^ zG|>>6sXwFSm-~|~mOGzAtXMbu=Di@~O2xHD7sS9>ipp_1jw=YQJA&%Z;0J6dZDAbgwKeA>hG@;($? zq_<&!U-^Wgq3?4(ylVY;>z=^$g(kzBc`Sp*Nzfc$@7vB~{D%hd0DQzr{F5=Q8j9ee zz){J|;j>gZIFFj{Xmx?{NSPx%a`6SlR|0}tE;TGLm4BXS%#;ge3c8LCc*kSubbX2U z58X62X9)^Rn*Bg<^0 zM9h$sZrxCk&acd`#l(1G-P&=Ovq)4^_L~q(2S^}pa)jyuP_+E!#_M&rpNg&IcfXjY zu_TjS!Cu^M*7y)+#7OSaRihkHg!`upv|Ei=toBZ^FvX6S*ylTl1ms zdQ1#>FQ@-)-2a|XE`UIQ2t>(QLT}U6aliF!pp0r(vj2bd#eavZu;%AC(#eQFj|HO- zCxCzOm+ZaLdGthD-+h9Zd(ME=cQ2+{MYaMT@HDYs%Cuj)E}fz~(VLg!lijVC;Ghkt zH6V(M678lmrQFGE0Yq+Yn2I{OEvcGuh$-L5qt1CrQ*8no0Dp|;ri}?B>az5V`|*W! zucFT4K@$1ME*dC2CMs>=2G_Y$FV2V{IN^~=s4i;zi^h05~Vr_Acxxt3RM2sJZ>);Fy` zeK{6R`PN(RYZ&y%FqSqR+&9y>Rq#TFELQz?nmXA>brqnc#s|{GS1?HKaSbuvw!d{k8kr<&(@)L^p25#JEsAqqVBe*XR2!!HD*qy z@Jm22SrIi#ypX-@8NpO?e0F z#!&^E3id>&jh;;3cZ`tetRl{Ublw^Hz<-=-ERG*g|GDH&dYGYp*S5RAdt-KL)kDkN zQlMTcn_;n%xyrXLHQ8VJa;Ty2XBNp>RzvQ-)U)-DEgw-I(RCxO1mfdUN`g3H*L( zrWE{CCWz(TnRN2GaI;*2vUmen1`j>+y~<{ZJ4Yu_aWz1C_q7BFZa$O!XGy(|Zt}Cd zTXS(V{YRH7@;t9dT_Eb;E(D@a*?ow2FVly|P5HmXQ{{&b@S;t(r8-b|8kJ}vA&Tf}f54uhcK4CI)L!V2 z+yYdK9e{q)v;DLUhxD!qJH3+ga!ixW?GhB^#;QbFlf5WtsM5S~Qg+k@=z8r{?6d>Fgfp?l!Q^O}kNEo9)MmGrYUqMpGNYD)-(DS}ClPW?3=_R}`!eD( z;aXo?nvUKGL|Nm9XrNXbd@duRxP}jg=ChjL3cN+vKS}rV!1t{f4}~${g52h0 zOfr^z0{)cgmLVF6^qqj15v!6=U_Y!9KqP=ep{P@^7Bj;0!G*Upc;W5_7e*CDG1B7? zPmq@%uK=EtXuUi+uTWs>Emf^^9+6-dh;g|879}e@*mdG@KUWiDO40H2MJY24K0BMu zRKcfb)79+?NigH}rJUSpj~pw3x<1qACKY1Z&aI+{+5ePR0%)lV7UjvMPuo%*yGuw*Q<_^EB0ei zid(?43L^+sgVD8{oL#uaO)nDMBWRrOS$4-3plRz7hl52sK;?X|J|_z2G-F7d*P81m zM>`YoB<)n*lD$R8R&-g-j)l5@$Fi$A%Lu2BOU;W(-qu}GE#^66+QEoTuj2{9=kvsY z98#FXG+-LsP0jm>iyNO>&%(q?iJgHtuM!!d1cddE46E{MzRzV^lYyiLUDEmrMldKy z*Oo{%)KZSjnne!>PUw6g)&$OMyqmXO?-0BYFsg=+r1N;fAgfTaF{7(Dfqf#=6=bkw zH}(5XgX(%O(&n?3?lZ_y(903#FMr2!5!*Y@=M=Aj zNT!4+Ma3j@o#DSxHi^3W8l8wc6?r^C-==#yw(&g_DwmfRoOc?cn|VeyQ!wMk+S4K* z?rjPduT9+T+UN=7LRyybl z?g)DFGe4jpG6AJ$Q=fJ&72PYr$@xn!m2~V?$!l9tFR=V#xeBWBVkC)=jpJ!gE~4ed zB{2jq_-t_-F=pu3#roRBN{Pf^ISE|YM3hRU@ZbZ8$_^u9&D{axt3y54%Te6zP~N<` zeJYNb_bD=k2^5wX#pkNg8m1PxxX!8-$#?X6Ddna0ngxtQIz7QcFDDZ9T~!@ENak^r zR3>qJWFz~c6y|VeVzjEtIH{7&D!YAJu1Ga5+n^25drU)|4R1|m# z6{-wF*rLX;uF0x%dKzA)Fx$zokrFGgLuB*_jgXN`QiXD{F{6V`1b6a$-9ryuCGOdU z+m19*dD=;AV@}+xk^PX5tcFJVdNi&*WxsSMN1b(Yb2}-@@(@elj!>&mD*g`2UM^0` z6hY&%Qiq1-)81$+;zfupxYSxYo7e|_)~^|}7PVg;0{SSD2KZEH&2#$t%YJW;nLn5~ zwszY(f@ScWloAogo4Fh)t}w_UNby?xvSoiO(?f46kCaZlwlufmdY=Y|ru65;*g3R8 zs^7C$ur#_HKRYvzm>Of8Ok@Zeb7V|;@}MXk1XWqO{?4Qnk>uxyHy7^juLK=rY;sB{ z7bm?WK7TUc-`qWQ{@br~-PY8Ad|eBl4pNq%z@NPkhoAlS{KV(eP=PY&Or_6?OGk!JVCq}fEY+x2|kRn%m~%)@N` z5s)Zx06fdf?RNWXD4p_;_9t<_;X5$7!2qr2C(Q=~3hyP&l3f9sTy1^8qPJ;lZtfXI z_^$3GxTaX7pbC=tN%pDBk@~@ocUM5Bzoa-0W8KRfLa}*$A?OK2OZsiFz@P_C11lmD z3E;{)(0BS$4{m(Ce)y~2TwB%WJ8LsgFTZQdjco!2ho4|cQHEDP>D=F!n@UMwFJjKCgsVzg@GhyRLOUD^aQg*}L%dZ)y z5w;k@3db+KB}M!eDZ95Oi#r#RI>i0NFU4`qg5n+~vfsw;?OHwe_1kp!UuVzDN`v|g z(R;7e1WQLz;w3>XY2%Sapi-oH9kyDh(-Ee`-yXTKAwx?v-gf3oLtiAYQ=vu#F=>mY z*tIIjtupQ%u;d>g$F?f$SG*U8?!UU|sNc8=jejzwC9wsy3>dF@`cW!ZOTWOU_^pM6 zI|v?dvn>NuJh$F(Ub$meeW$e1aE8!aNLl<~Q8XR$V4y9s6FnP^aRWxHI zM1k&d?vG;o+tY}13$tx&zZaS0uE{pqP~%Osp-(0&bU-?ZC20@|tRI;aPHs~hZ$2ER zn&rAEZ;Y zt=hE+1-bL9A>w34cau1k-12Vebz6+vAUUaI6TeCO+3Ratf>g%+Pm9J5JG4IKgyjuw z9Bq;Wyw?esRi(;WXx~#-+p_s^(B3ac_>_R!JgtI~Q3+g_VFhzvsr&mV3)y6+1^6CH8%{>y39_6|9PDFejMpZ`#^!pui<?;Yz8K@FXnyL53-v-35egAD|Iz+M(l&)3=KnqIuhpIju+|!k(xi)g>LOE ze!Op_bBqQ03ao4vq08pw53IN9P|`)g$PE$In#1KJp(2U2WE@hxQUsyzXWuT8C^agF zR6%D0i*{!u!d;kiVz%>^9v=lXXU)S4ISq#H89b9ZGm761fcqnH`YhZX>b9&PaHw72 zFhvPbRUR9J3&hNtsA!nu);Dw0W%wtgtQqYANiLJ{ySEz_@sU!;s<$KxY|W|@Yr7$y zyeJE!qDn!a66!TKi*dkvp#TROXQ6@P8rAQt(_Z53|jZT-+9p8N#dqq z6fNa2-kEmn|DyK3$S;Irq`=PnLu8XeV4yYk~+#Tm+^XvK^H>Q|6=>2O!X zNBarY=UYF|2`z|c=7yC=O7WWZtwSX142A|K6X{imX-*|rnIUdDtGY#eBBEYxu_VmP zjEU68g~@V5_ZPQvyrB8?3VLnBQ(T*tPj6Dr&8TQe_iFM)T6CT)6jjdeedX{6=ChVi zbSZz?A9aBPhRONRQ(E>LU+C-&c-Um6?n;U;JUZzu5Lj6Ou*LJju>%G42#^p1Z-X)*32QYj26Dw$+gC&a9G=O{EwDKiFaU0qTuo+MG4shBDw5^f0P;-$tF@q!V1etZ_6u!JP4H&7#(e4oQ?|B z^0}&@)WrT+MDbgpiRF#i-4>ujsBhnD{kNiX-VlP|saiDlu*$q&yTJ}(j z)=^zC-GjJ&YYwQYKoRUR`^Ib^Rh0RCp6A+7fD{I=9AYo1ZVH4WM0<7I;VcV`9o>|- ztyv1yjKZiO_5=Q^9v*dLl=+zNFywL7xVwMq^+pYx@oEM}KOmpk{hrpeN7To$wwQiP z<$2W7?N=1C9)-57yzUhihzqA=?8Ne{c!w052$LG7PE}7*b5^Xz;fuZ_Acsi1AHIVF zZX^MzYz@Kcy$YY7*|J!I6rxxoDb=_rl)ty7xEog`R_EnL_F4_x(V0oi1C>M;DkPIq zd_`Ewr}9KNSn89hDdaw$Z=;3?gd3%kn;cb8T1NE&h-4EfOOq6JDZ!ykrJaxHox2rN z;d1`DRrl6-Fw8H7xe7iB!HRqDRgu=J6s$~^&685#mgD*;h)6`YeEw_x0% zG-0u2es7)3kE9~~zAlIr%^E&X%`{X#w=h~gmk+UM%WX4k(>`SC^-}_yzq}wW<-~W2_}gLyYY8KXv;^<;g2#U8rp8ZI`&?jU636a~qLvxs-J2a(eeFa;tc$dUr+^ z+N!i4Zg4F$o~qy5Wn6hHf6DUa6yV*OQV4)@_uBbq0ivK1zD@Q~iT)j;Uk>2OQ*TidfF>u*?oPRYQprkN&pR%kQ(k#M&Cy3t~~7^r*|kU zr0Ers3xaoY8TSgOv0P@#53{E06sDAGK)lP>q~3~KXoZ0Ne7YFIzCpfhji?;o4%!~) z)Jr?&uv$BI)78c4ihgg3GkXtbZ{4y#EVjwGG>XkSFHf7EHF2q0Xew(E-sh}T*C^~0 zq|opSfFUzJH6Phe)u7R_u6z(ZZZ?5ER~cCI`=|27N0!* zy<`jQQHSfG4Kj9RPqY0>HI8nvB=|uDjVg#bEE6aB-!hMH1#Q>w-xRw+d5S^qY{rvK zxfm-x_$ENe0afn1ZDn(l!1DR9i(NwFl~X$sd{(<=)Cpn{K=&y1xY%xs>zD7tD2zUBC_u9CQ_~R z3@zbAJD_S?&v@p26lg=be+k+J;fc=}G@R(;0wyJh zMWsWbx)Tg0?jwuWS*$dsTOP}+eG!T^Pu$)6BJ{uaR&tjjj5Ve+m|Seko#S~G0@qAw zvX8hEu$g}xmih{YifBbTrsp8yQ-DQA)MtOjHj<}L;oVTV%B;NpRx^qv%}VDoXpxT& zdw(toug$%|tyc+j7?zCKx*-F#8i~ER*~oE6gTaq^xrcM$nZeif$8``&@X{Ee1$r@e_ zwmw420oDTonv>AQo)Npi{?b`3WOAXw&t(h3y zH8Rz0OxXZKL6xg*bQQJGCxd1J`C6fpK7~0iLu6luJa}kW;$R3IVT2B&8Dg6b-IpQb z)o8VtPK}E!NVm~!Jvv!@ckNlA-^}*X5~?hSOxZU{jqLLy2YRdF zyTxJhrnO6*1GNR*y+XOyvsAdco(t0IQf^}Hl5C_#PmD*+4lYgSQ@_%?nL_8Ma`64$`4VZh}lqpqO^@1TT2coF`!F{7@i=DT+dh5KYr?q-dvDaxPj&v{8S%acU6i0`G@Or?2L_@vXu&qY;26=Lwv?uvVjl;jB*(3^?4r>4g9j@v%*ie()Kt2D7YOF@caH3v%#Bu1c{)N0sdAht21)%CYe~2iaM$H*@$TOHR-&1A$WzrX*7ad=K z;JQ=Bu`z*lfh@MP>~;d_{K(e3b&s`FH@=1D88UNQPOXCzeulTCo7jJP+P<&VC*c<# zuv1`^kUHPu(ZR{#9AQn)`EL9GBR1JV@kbCwO9$g=es6#+yjv>?TF|{RP z3R$kBN=Mm)Z_R&5uQ>Y-z(fv5X>cXXF-xfuk>JxiTLN_gDuQY#Mt`#2 zbpX0MKws6-UIx@qWWiM61fuSI$ui7A(W`1Dhhzeuw$AtQb=2)7N8{9voQs8=jB+&h z=}YY57xtuQ1=vTRsktQGVl3gJs1MmR3TqZb8YqA|L=dQcm`lAImtC8I(K%at_k{9< zmG5&W;3!~Kcsmz$BfYwN#=q361jBH5b4Et4ZEdw@X{G2rjrP*J3=#R)=Z1W+l98b7 zd@pn(L<*rcq#UvN`9mLd*}eW<7!^~aV^Y(4;jmCfgQ5}CIG-ydCPG66u3EL0Br5PI z)yKi~aUTG`JTH6~VPDOXN|jL&TAzZjRGOUr7*Kv<#>*3#S>Ly&{mQpouJQ)Wt0WsF zBLt=o>U@>=X6jLQT42^0(m9{zq}T)AO(*Zgh}yQ_KuqjqG&e|(n}#K)$c`D8+Vny0 zx_VDOViC7l>!6s%m94|O+|!oilz?<;h=k}heBeX}j6Xaj&I)9Of6&ob=VIDXWo%N! z<1qkDN-}o&b^PkB^U;lyl%P}qUvA$off41*tnR+$oYkB&hMX*PCQzj5&%=P(;BU$o z`-~)OmXFvCoNEMmt*KIhi=`$H2IiP7_PoU55J%)Y)Ux;iP96oH+pPyoFc+d!?*ql% zM>LA_Jd_g>p2b_f@%larPKy**c|KDhuKDUkVMZjhKfT5!6;qCRvwh|-d(tf4EIEx8 z%BY CD=U=% From 546077302951cda3d4e7a14afcff7330a7ad5942 Mon Sep 17 00:00:00 2001 From: Christoph Scheuch <19249734+christophscheuch@users.noreply.github.com> Date: Sun, 20 Oct 2024 10:36:38 -0400 Subject: [PATCH 9/9] Resolve open lintr issues --- R/global-variables.R | 3 ++- R/ids_list_series.R | 17 +++++++++++------ R/ids_list_series_topics.R | 13 ++++++++----- data-raw/wbids_data.R | 19 +++++++++---------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/R/global-variables.R b/R/global-variables.R index f5bfedc..b1b6d76 100644 --- a/R/global-variables.R +++ b/R/global-variables.R @@ -1,5 +1,6 @@ # We only use system data objects as global variables. # See https://cran.r-project.org/web/packages/dplyr/vignettes/in-packages.html -# For data masking, import .data from rlang and then use .data$var instead of var. +# For data masking, import .data from rlang and then use .data$var instead of +# var. # For tidy selection, use "var" instead of var. utils::globalVariables(c("series", "series_topics")) diff --git a/R/ids_list_series.R b/R/ids_list_series.R index f09d54d..38d92bd 100644 --- a/R/ids_list_series.R +++ b/R/ids_list_series.R @@ -1,16 +1,21 @@ #' List Available Series from the World Bank International Debt Statistics API #' -#' This function returns a tibble with available series from the World Bank International Debt Statistics -#' (IDS) API. Each series provides data on various debt-related indicators. +#' This function returns a tibble with available series from the World Bank +#' International Debt Statistics (IDS) API. Each series provides data on various +#' debt-related indicators. #' #' @return A tibble containing the available series and their metadata: #' \describe{ -#' \item{series_id}{The unique identifier for the series (e.g., "BN.CAB.XOKA.CD").} -#' \item{series_name}{The name of the series (e.g., "Current account balance (current US$)").} +#' \item{series_id}{The unique identifier for the series (e.g., +#' "BN.CAB.XOKA.CD").} +#' \item{series_name}{The name of the series (e.g., "Current account balance +#' (current US$)").} #' \item{source_id}{The ID of the data source providing the indicator.} -#' \item{source_name}{The name or description of the source of the indicator data.} +#' \item{source_name}{The name or description of the source of the indicator +#' data.} #' \item{source_note}{Additional notes or descriptions about the data source.} -#' \item{source_organization}{The organization responsible for the data source.} +#' \item{source_organization}{The organization responsible for the data +#' source.} #' } #' #' @export diff --git a/R/ids_list_series_topics.R b/R/ids_list_series_topics.R index c886d18..077cc32 100644 --- a/R/ids_list_series_topics.R +++ b/R/ids_list_series_topics.R @@ -1,12 +1,15 @@ -#' List Available Series-Topic combinations from the World Bank International Debt Statistics API +#' List Available Series-Topic combinations from the World Bank International +#' Debt Statistics API #' -#' This function returns a tibble with available series-topic combinations from the World Bank -#' International Debt Statistics (IDS) API. Each row provides a mapping from series to topic, with -#' the possibility of multiple topic per series. +#' This function returns a tibble with available series-topic combinations from +#' the World BankInternational Debt Statistics (IDS) API. Each row provides a +#' mapping from series to topic, with the possibility of multiple topic per +#' series. #' #' @return A tibble containing the available series and their topics: #' \describe{ -#' \item{series_id}{The unique identifier for the series (e.g., "BM.GSR.TOTL.CD").} +#' \item{series_id}{The unique identifier for the series (e.g., +#' "BM.GSR.TOTL.CD").} #' \item{topic_id}{The unique identifier for the topic (e.g., 3).} #' \item{topic_name}{The name of the topic (e.g., "External Debt").} #' } diff --git a/data-raw/wbids_data.R b/data-raw/wbids_data.R index 5f1477b..9e2c6a9 100644 --- a/data-raw/wbids_data.R +++ b/data-raw/wbids_data.R @@ -1,9 +1,9 @@ devtools::load_all() -# Prepare geography data ---------------------------------------------------------------------- +# Prepare geography data ------------------------------------------------------- -# Prepare series data ------------------------------------------------------------------------- +# Prepare series data ---------------------------------------------------------- series_raw <- perform_request("series") @@ -14,27 +14,26 @@ series_processed <- series_raw[[1]]$concept[[1]]$variable |> series_name = "value" ) -# pak::pak("tidy-intelligence/r-wbwdi") +# Download package via: pak::pak("tidy-intelligence/r-wbwdi") indicators <- wbwdi::wdi_get_indicators() series_extended <- series_processed |> left_join(indicators, join_by(series_id == indicator_id)) -series <- series_extended|> - select(series_id, series_name, source_id, source_name, source_note, source_organization) +series <- series_extended |> + select(series_id, series_name, source_id, source_name, + source_note, source_organization) -# Prepare counterpart data -------------------------------------------------------------------- +# Prepare counterpart data ----------------------------------------------------- -# Prepare series-topics data ------------------------------------------------------------------ +# Prepare series-topics data --------------------------------------------------- series_topics <- series_extended |> select(series_id, topics) |> tidyr::unnest(topics) -# Store all data in single rda file ----------------------------------------------------------- - -# TODO: add other data sources later here as well +# Store all data in single rda file -------------------------------------------- usethis::use_data( series, series_topics,