A tiny dataset containing estimates of global coffee in thousands of 60 kg bags produced by country. Purpose: teaching **not** research.

coffee_data

Format

A data frame (tibble) with 58 for the following 12 variables:

  • name_long name of country or coffee variety

  • coffee_production_2016 production in 2016

  • coffee_production_2017 production in 2017

Source

The International Coffee Organization (ICO). See http://www.ico.org/ and http://www.ico.org/prices/m1-exports.pdf

Details

The examples section shows how this can be joined with spatial data to create a simple map.

Examples

head(coffee_data)
#> # A tibble: 6 x 3 #> name_long coffee_production_2016 coffee_production_2017 #> <chr> <int> <int> #> 1 Angola NA NA #> 2 Bolivia 3 4 #> 3 Brazil 3277 2786 #> 4 Burundi 37 38 #> 5 Cameroon 8 6 #> 6 Central African Republic NA NA
if (FALSE) { library(tidyverse) library(sf) # found by searching for "global coffee data" u = "http://www.ico.org/prices/m1-exports.pdf" download.file(u, "data.pdf", mode = "wb") install.packages("pdftables") # requires api key pdftables::convert_pdf(input_file = "data.pdf", output_file = "coffee-data-messy.csv") d = read_csv("coffee-data-messy.csv") file.remove("coffee-data-messy.csv") file.remove("data.pdf") coffee_data = slice(d, -c(1:9)) %>% select(name_long = 1, coffee_production_2016 = 2, coffee_production_2017 = 3) %>% filter(!is.na(coffee_production_2016)) %>% mutate_at(2:3, str_replace, " ", "") %>% mutate_at(2:3, as.integer) world_coffee = left_join(world, coffee_data) plot(world_coffee[c("coffee_production_2016", "coffee_production_2017")]) b = c(0, 500, 1000, 2000, 3000) library(tmap) tm_shape(world_coffee) + tm_fill("coffee_production_2017", title = "Thousand 60kg bags", breaks = b, textNA = "No data", colorNA = NULL) tmap_mode("view") # for an interactive version }