.pip
environmentvignettes/articles/pip-env-aux-tables.Rmd
pip-env-aux-tables.Rmd
The Poverty and Inequality Portal (PIP) not only provides the
estimates to monitor global poverty and country-level inequality, but it
also makes available all the underlying data necessary for such
estimations. These data are called auxiliary tables and you can access
them with the pipr package via the function
get_aux()
. You need to know the name of the auxiliary table
you need to retrieve. For that you can use the function
display_aux()
The main objective of display_aux()
is to show the user
all the auxiliary tables available in pip and give them the ability to
download them by just clicking on their names. 1 The idea of this
feature is to simulate the behavior of the complementary PIP Stata
wrapper {pip}.
display_aux()
#> -- Click on any of the tables below --
#>
#> `aux versions`
#> `countries`
#> `country coverage`
#> `country list`
#> `cpi`
#> `decomposition`
#> `dictionary`
#> `framework`
#> `gdp`
#> `incgrp coverage`
#> `indicators`
#> `interpolated means`
#> `missing data`
#> `pce`
#> `pop`
#> `pop region`
#> `poverty lines`
#> `ppp`
#> `region coverage`
#> `regions`
#> `survey means`
When you click on any of the tables names in the console of your R
IDE, {pipr} will store the desired table into the .pip
environment, which is created at build time. That is, each time {pipr}
is loaded or attached. To store the tables in the .pip
environment, display_aux()
makes use of the argument
assign_tb
in the get_aux()
function. If
TRUE
, get_aux()
assigns the requested
auxiliary table to the .pip
environment and returns and
invisible TRUE
instead of the table. If FALSE
(the default), it behaves as usual. So, display_aux()
is
just a wrapper around get_aux()
with
assign_tb = TRUE
.
.pip
env.
Since the .pip
environment is created at build time
inside {pipr} it is quite tricky to get its contents “by hand.” This why
you need to use function call_aux
to call any auxiliary
table available in .pip
env. In this way, you have the best
of both words:
call_aux()
assign_tb
option and call_aux
are a
powerful idea for developers who need to keep their environments
clean.# this simulates a `display_aux() call`
get_aux("gdp", assign_tb = TRUE)
#> Pruning cache
#> ℹ Auxiliary table gdp successfully fetched. You can now call it by typing
#> `pipr::call_aux('gdp')`
# now you can call it
call_aux("gdp")
#> # A tibble: 10,608 × 4
#> country_code data_level year value
#> <chr> <chr> <fct> <dbl>
#> 1 ABW national 1977 NA
#> 2 ABW national 1978 NA
#> 3 ABW national 1979 NA
#> 4 ABW national 1980 NA
#> 5 ABW national 1981 NA
#> 6 ABW national 1982 NA
#> 7 ABW national 1983 NA
#> 8 ABW national 1984 NA
#> 9 ABW national 1985 NA
#> 10 ABW national 1986 17354.
#> # ℹ 10,598 more rows
.pip
in development
You can use the .pip
environment in development when you
need to interact with PIP auxiliary data in several instances during
your project and need to make sure the data is not affected by the work
in your global environment. .pip
environment makes sure
that all its tables remain unchanged and available when needed as long
as pipr is not reloaded or a new R session is started
# for developers who may need several tables
tb <- c("cpi", "ppp", "pop")
l <- lapply(tb, get_aux, assign_tb = TRUE)
#> ℹ Auxiliary table cpi successfully fetched. You can now call it by typing
#> `pipr::call_aux('cpi')`
#> ℹ Auxiliary table ppp successfully fetched. You can now call it by typing
#> `pipr::call_aux('ppp')`
#> ℹ Auxiliary table pop successfully fetched. You can now call it by typing
#> `pipr::call_aux('pop')`
call_aux()
#>
#> ── tables available in env pip ──
#>
#> `gdp`
#> `ppp`
#> `cpi`
#> `pop`
call_aux("pop")
#> # A tibble: 31,200 × 4
#> country_code data_level year value
#> <chr> <chr> <fct> <dbl>
#> 1 ABW national 1977 58580
#> 2 ABW rural 1977 28987
#> 3 ABW urban 1977 29593
#> 4 ABW national 1978 58776
#> 5 ABW rural 1978 29093
#> 6 ABW urban 1978 29683
#> 7 ABW national 1979 59191
#> 8 ABW rural 1979 29307
#> 9 ABW urban 1979 29884
#> 10 ABW national 1980 59909
#> # ℹ 31,190 more rows