replace_NAs
argumentUse the replace_NAs
argument in convertGDP
to handle missing conversion factors.
replace_NAs
= NULL or NABy default, replace_NAs
is NULL
, and NAs are returned along with a warning. Set replace_NAs = NA
to explicitly return NAs without the warning.
Below, the return_cfs
argument is set to TRUE
to inspect the conversion factors, along side the result.
library(GDPuc)
# Test with Aruba -> iso3c = ABW
<- tibble::tibble(
my_gdp iso3c = c("ABW"),
year = 2010:2014,
value = 100:104
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
return_cfs = TRUE
)#> Warning: NAs have been generated for countries lacking conversion factors!
$result
x#> # A tibble: 5 × 3
#> iso3c year value
#> <chr> <int> <dbl>
#> 1 ABW 2010 NA
#> 2 ABW 2011 NA
#> 3 ABW 2012 NA
#> 4 ABW 2013 NA
#> 5 ABW 2014 NA
$cfs
x#> # A tibble: 1 × 4
#> iso3c `2005 PPP conversion factor in (LCU …` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 NA NA
To eliminate the warning:
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = NA
)
You can also use the GDPuc.warn
option to suppress warnings from convertGDP
in general (see “Silence warnings”).
replace_NAs
= 0If set to 0, resulting NAs are set to 0.
<- tibble::tibble(
my_gdp iso3c = "ABW",
year = 2010:2014,
value = 100:104
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = 0,
return_cfs = TRUE
)$result
x#> # A tibble: 5 × 3
#> iso3c year value
#> <chr> <int> <dbl>
#> 1 ABW 2010 0
#> 2 ABW 2011 0
#> 3 ABW 2012 0
#> 4 ABW 2013 0
#> 5 ABW 2014 0
$cfs
x#> # A tibble: 1 × 4
#> iso3c `2005 PPP conversion factor in (LCU …` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 NA NA
replace_NAs
= “no_conversion”If set to “no_conversion”, NAs are replaced with the values in the gdp argument.
<- tibble::tibble(
my_gdp iso3c = "ABW",
year = 2010:2014,
value = 100:104
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = "no_conversion",
return_cfs = TRUE
)$result
x#> # A tibble: 5 × 3
#> iso3c year value
#> <chr> <int> <dbl>
#> 1 ABW 2010 100
#> 2 ABW 2011 101
#> 3 ABW 2012 102
#> 4 ABW 2013 103
#> 5 ABW 2014 104
$cfs
x#> # A tibble: 1 × 4
#> iso3c `2005 PPP conversion factor in (LCU …` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 NA NA
replace_NAs
= “linear”If set to “linear”, missing conversion factors are inter- and extrapolated linearly. For the extrapolation, the closest 5 data points are used.
<- tibble::tibble(
my_gdp iso3c = "ABW",
year = 2010:2014,
value = 100:104
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = "linear",
return_cfs = TRUE
)$result
x#> # A tibble: 5 × 3
#> iso3c year value
#> <chr> <int> <dbl>
#> 1 ABW 2010 116.
#> 2 ABW 2011 117.
#> 3 ABW 2012 118.
#> 4 ABW 2013 120.
#> 5 ABW 2014 121.
$cfs
x#> # A tibble: 1 × 4
#> iso3c `2005 PPP conversion factor in (LCU …` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 1.30 1.37
replace_NAs
= “regional_average”If set to “regional_average”, the regional GDP-weighted averages will be used. Requires a region-mapping, and a column in the source object with GDP data at PPP, to be used as weight. May lead to misleading results, use with care!
<- tibble::tibble(
my_gdp iso3c = "ABW",
year = 2010:2014,
value = 100:104
)
<- tibble::tibble(
my_mapping_data_frame iso3c = c("ABW", "BRA", "ARG", "COL"),
region = "LAM"
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = "regional_average",
with_regions = my_mapping_data_frame,
return_cfs = TRUE
)$result
x#> # A tibble: 5 × 3
#> iso3c year value
#> <chr> <int> <dbl>
#> 1 ABW 2010 3.75
#> 2 ABW 2011 3.79
#> 3 ABW 2012 3.83
#> 4 ABW 2013 3.86
#> 5 ABW 2014 3.90
$cfs
x#> # A tibble: 1 × 4
#> iso3c `2005 PPP conversion factor in (LCU …` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 6.44 210.
# Compare the 2019 PPP with the 2005 PPP. They are not in the same order of magnitude.
# Obviously, being a part of the same region, does not mean the currencies are of the same strength.
replace_NAs
= c(“linear”, “…”)If a vector is passed, with “linear” as first element, then the operations are done in sequence. For example for c(“linear”, 0), missing conversion factors are first inter- and extrapolated linearly but if any missing conversion factors still lead to NAs, these are replaced with 0.
# Create an imaginary country XXX, and add it to the Latin America region
<- tibble::tibble(
my_gdp iso3c = c("ABW", "XXX"),
year = 2010,
value = 100
)
<- tibble::tibble(
my_mapping_data_frame iso3c = c("ABW", "BRA", "ARG", "COL", "XXX"),
region = "LAM"
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = c("linear", 0),
with_regions = my_mapping_data_frame,
return_cfs = TRUE
)$result
x#> # A tibble: 2 × 3
#> iso3c year value
#> <chr> <dbl> <dbl>
#> 1 ABW 2010 116.
#> 2 XXX 2010 0
$cfs
x#> # A tibble: 2 × 4
#> iso3c `2005 PPP conversion factors in (LCU…` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 1.30 1.37
#> 2 XXX NA NA NA
replace_NAs
= 1If set to 1
, missing conversion factors are set to 1. To be deprecated, use with care!
<- tibble::tibble(
my_gdp iso3c = "ABW",
year = 2010:2014,
value = 100:104
)
<- convertGDP(
x gdp = my_gdp,
unit_in = "constant 2005 Int$PPP",
unit_out = "constant 2019 Int$PPP",
replace_NAs = 1,
return_cfs = TRUE
)#> Warning: The `replace_NAs` argument of `convertGDP()` should not be 1 as of GDPuc 0.7.0.
#> This warning is displayed once every 8 hours.
#> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
$result
x#> # A tibble: 5 × 3
#> iso3c year value
#> <chr> <int> <dbl>
#> 1 ABW 2010 103.
#> 2 ABW 2011 104.
#> 3 ABW 2012 105.
#> 4 ABW 2013 106.
#> 5 ABW 2014 107.
$cfs
x#> # A tibble: 1 × 4
#> iso3c `2005 PPP conversion factor in (LCU …` `2019 value of…` `2019 PPP conv…`
#> <chr> <dbl> <dbl> <dbl>
#> 1 ABW 1.22 0.840 1
# Why is the deflator above not 1? That is because for ABW, only the deflator value in 2019 was set to 1.
# In 2005 the deflator was in the order of magnitude of 100. Obviously setting the deflator to 1 in 2019 is
# completely misleading.