Introduction
This vignette explains the functions within this package. The idea is to show how this package simplifies obtaining data from (api.tradestatistics.io)[https://api.tradestatistics.io].
To improve the presentation of the tables I shall use tibble
besides tradestatistics
.
Package data
Available tables
Provided that this package obtains data from an API, it is useful to know which tables can be accessed:
as_tibble(ots_tables)
#> # A tibble: 16 × 3
#> table description source
#> <chr> <chr> <chr>
#> 1 commodities Commodities metadata (HS codes, 6 digits long) UN Co…
#> 2 commodities_short Commodities metadata (HS codes, 4 digits long) UN Co…
#> 3 countries Countries metadata UN Co…
#> 4 distances Distance between countries, alongside continuity, c… CEPII…
#> 5 partners Partners for a given year UN Co…
#> 6 reporters Reporters for a given year UN Co…
#> 7 sections Sections metadata (HS codes) UN Co…
#> 8 sections_colors Colors for sections (i.e. useful to visualize data) Open …
#> 9 rtas Regional Trade Agreements per pair of countries and… Desig…
#> 10 tariffs Most Favoured Nation tarrifs (Year, Reporter and Co… World…
#> 11 years Minimum and maximum years with available data Open …
#> 12 yc Commodity trade at aggregated level (Year and Commo… Open …
#> 13 yr Reporter trade at aggregated level (Year and Report… Open …
#> 14 yrc Reporter trade at commodity level (Year, Reporter a… Open …
#> 15 yrp Reporter-Partner trade at aggregated level (Year, R… Open …
#> 16 yrpc Reporter-Partner trade at commodity level (Year, Re… Open …
You might notice the tables have a pattern. The letters indicate the presence of columns that account for the level of detail in the data:
-
y
: year column. -
r
: reporter column -
p
: partner column -
c
: commodity column
The most aggregated table is yr
which basically says how many dollars each country exports and imports for a given year.
The less aggregated table is yrpc
which says how many dollars of each of the 1,242 commodities from the Harmonized System each country exports to other countries and imports from other countries.
For the complete detail you can check tradestatistics.io.
Country codes
The Package Functions section explains that you don’t need to memorize all ISO codes. The functions within this package are designed to match strings (i.e. “United States” or “America”) to valid ISO codes (i.e. “USA”).
Just as a reference, the table with all valid ISO codes can be accessed by running this:
as_tibble(ots_countries)
#> # A tibble: 264 × 5
#> country_iso country_name_english country_fullname_english continent_id
#> <chr> <chr> <chr> <int>
#> 1 dza Algeria Algeria 3
#> 2 ago Angola Angola 3
#> 3 ben Benin Benin 3
#> 4 bwa Botswana Botswana 3
#> 5 bfa Burkina Faso Burkina Faso 3
#> 6 bdi Burundi Burundi 3
#> 7 cmr Cameroon Cameroon 3
#> 8 cpv Cape Verde Cape Verde 3
#> 9 caf Central African Rep. Central African Rep. 3
#> 10 tcd Chad Chad 3
#> # ℹ 254 more rows
#> # ℹ 1 more variable: continent_name_english <chr>
Commodity codes
The Package Functions section explains that you don’t need to memorize all HS codes. The functions within this package are designed to match strings (i.e. “apple”) to valid HS codes (i.e. “0808”).
as_tibble(ots_commodities)
#> # A tibble: 5,304 × 4
#> commodity_code commodity_fullname_english section_code section_fullname_eng…¹
#> <chr> <chr> <chr> <chr>
#> 1 010121 Horses; live, pure-bred b… 01 Live animals and anim…
#> 2 010129 Horses; live, other than … 01 Live animals and anim…
#> 3 010130 Asses; live 01 Live animals and anim…
#> 4 010190 Mules and hinnies; live 01 Live animals and anim…
#> 5 010221 Cattle; live, pure-bred b… 01 Live animals and anim…
#> 6 010229 Cattle; live, other than … 01 Live animals and anim…
#> 7 010231 Buffalo; live, pure-bred … 01 Live animals and anim…
#> 8 010239 Buffalo; live, other than… 01 Live animals and anim…
#> 9 010290 Bovine animals; live, oth… 01 Live animals and anim…
#> 10 010310 Swine; live, pure-bred br… 01 Live animals and anim…
#> # ℹ 5,294 more rows
#> # ℹ abbreviated name: ¹section_fullname_english
Inflation data
This table is provided to be used with ots_gdp_deflator_adjustment()
.
as_tibble(ots_gdp_deflator)
#> # A tibble: 4,084 × 4
#> country_iso from to gdp_deflator
#> <chr> <int> <int> <dbl>
#> 1 abw 2000 2001 1.06
#> 2 abw 2001 2002 1.05
#> 3 abw 2002 2003 1.02
#> 4 abw 2003 2004 1.02
#> 5 abw 2004 2005 1.03
#> 6 abw 2005 2006 1.03
#> 7 abw 2006 2007 1.06
#> 8 abw 2007 2008 1.05
#> 9 abw 2008 2009 1.02
#> 10 abw 2009 2010 0.993
#> # ℹ 4,074 more rows
Package functions
Country code
The end user can use this function to find an ISO code by providing a country name. This works by implementing partial search.
Basic examples:
# Single match with no replacement
as_tibble(ots_country_code("Chile"))
#> # A tibble: 1 × 5
#> country_iso country_name_english country_fullname_english continent_id
#> <chr> <chr> <chr> <int>
#> 1 chl Chile Chile 5
#> # ℹ 1 more variable: continent_name_english <chr>
# Single match with replacement
as_tibble(ots_country_code("America"))
#> # A tibble: 1 × 5
#> country_iso country_name_english country_fullname_english continent_id
#> <chr> <chr> <chr> <int>
#> 1 usa USA USA, Puerto Rico and US Virgin … 5
#> # ℹ 1 more variable: continent_name_english <chr>
# Double match with no replacement
as_tibble(ots_country_code("Germany"))
#> # A tibble: 1 × 5
#> country_iso country_name_english country_fullname_english continent_id
#> <chr> <chr> <chr> <int>
#> 1 deu Germany Germany (former Federal Republi… 2
#> # ℹ 1 more variable: continent_name_english <chr>
The function ots_country_code()
is used by ots_create_tidy_data()
in a way that you can pass parameters like ots_create_tidy_data(... reporters = "Chile" ...)
and it will automatically replace your input for a valid ISO in case there is a match. This will be covered in detail in the Trade Data section.
Commodity code
The end user can find a code or a set of codes by looking for keywords for commodities or groups. The function ots_commodity_code()
allows to search from the official commodities and groups in the Harmonized system:
as_tibble(ots_commodity_code(commodity = " ShEEp ", section = " mEaT "))
#> # A tibble: 0 × 4
#> # ℹ 4 variables: commodity_code <chr>, commodity_fullname_english <chr>,
#> # section_code <chr>, section_fullname_english <chr>
Trade data
This function downloads data for a single year and needs (at least) some filter parameters according to the query type.
Here we cover aggregated tables to describe the usage.
Bilateral trade at commodity level (Year - Reporter - Partner - Commodity Code)
If we want Chile-Argentina bilateral trade at community level in 2019:
yrpc <- ots_create_tidy_data(
years = 2019,
reporters = "chl",
partners = "arg",
table = "yrpc"
)
as_tibble(yrpc)
We can pass two years or more, several reporters/partners, and filter by commodities with exact codes or code matching based on keywords:
# Note that here I'm passing Peru and not per which is the ISO code for Peru
# The same applies to Brazil
yrpc2 <- ots_create_tidy_data(
years = 2018:2019,
reporters = c("chl", "Peru", "bol"),
partners = c("arg", "Brazil"),
commodities = c("01", "food"),
table = "yrpc"
)
The yrpc
table returns some fields that deserve an explanation which can be seen at tradestatistics.io. This example is interesting because “01” return a set of commodities (all commodities starting with 01, which is the commodity group “Animals; live”), but “food” return all commodities with a matching description (“1601”, “1806”, “1904”, etc.). In addition, not all the requested commodities are exported from each reporter to each partner, therefore a warning is returned.
Bilateral trade at aggregated level (Year - Reporter - Partner)
If we want Chile-Argentina bilateral trade at aggregated level in 2018 and 2019:
yrp <- ots_create_tidy_data(
years = 2018:2019,
reporters = c("chl", "per"),
partners = "arg",
table = "yrp"
)
This table accepts different years, reporters and partners just like yrpc
.
Reporter trade at commodity level (Year - Reporter - Commodity Code)
If we want Chilean trade at commodity level in 2019 with respect to commodity “010121” which means “Horses; live, pure-bred breeding animals”:
yrc <- ots_create_tidy_data(
years = 2019,
reporters = "chl",
commodities = "010121",
table = "yrc"
)
This table accepts different years, reporters and commodity codes just like yrpc
.
All the variables from this table are documented at tradestatistics.io.
Reporter trade at aggregated level (Year - Reporter)
If we want the aggregated trade of Chile, Argentina and Peru in 2018 and 2019:
yr <- ots_create_tidy_data(
years = 2018:2019,
reporters = c("chl", "arg", "per"),
table = "yr"
)
This table accepts different years and reporters just like yrpc
.
All the variables from this table are documented at tradestatistics.io.
Commodity trade at aggregated level (Year - Commodity Code)
If we want all commodities traded in 2019:
yc <- ots_create_tidy_data(
years = 2019,
table = "yc"
)
If we want the traded values of the commodity “010121” which means “Horses; live, pure-bred breeding animals” in 2019:
yc2 <- ots_create_tidy_data(
years = 2019,
commodities = "010121",
table = "yc"
)
This table accepts different years just like yrpc
.
Inflation adjustment
Taking the yr
table from above, we can use ots_gdp_deflator_adjustment()
to convert dollars from 2018 and 2019 to dollars of 2000:
inflation <- ots_gdp_deflator_adjustment(yr, reference_year = 2000)
as_tibble(inflation)