A short description of the post.
1.Load packages we will use
download co2 emissions per capita from Our world in Data into the directory for the post.
Assign the location of the file to file_csv. The data should be in the same directory as this file. -Read the data into R and assign emissions
file_csv <- here("_posts","2021-03-03-reading-and-writing-data","co-emissions-per-capita.csv")
emissions <- read_csv(file_csv)
emissionsemissions
# A tibble: 22,383 x 4
Entity Code Year `Per capita CO2 emissions`
<chr> <chr> <dbl> <dbl>
1 Afghanistan AFG 1949 0.00191
2 Afghanistan AFG 1950 0.0109
3 Afghanistan AFG 1951 0.0117
4 Afghanistan AFG 1952 0.0115
5 Afghanistan AFG 1953 0.0132
6 Afghanistan AFG 1954 0.0130
7 Afghanistan AFG 1955 0.0186
8 Afghanistan AFG 1956 0.0218
9 Afghanistan AFG 1957 0.0343
10 Afghanistan AFG 1958 0.0380
# … with 22,373 more rows
5.start with emissions data THEN - Use clean_names from the janitor package to make easier to work with - assign the output totidy_emissions - show the first 10 rows of tidy_emission
tidy_emissions <- emissions %>%
clean_names()
tidy_emissions
# A tibble: 22,383 x 4
entity code year per_capita_co2_emissions
<chr> <chr> <dbl> <dbl>
1 Afghanistan AFG 1949 0.00191
2 Afghanistan AFG 1950 0.0109
3 Afghanistan AFG 1951 0.0117
4 Afghanistan AFG 1952 0.0115
5 Afghanistan AFG 1953 0.0132
6 Afghanistan AFG 1954 0.0130
7 Afghanistan AFG 1955 0.0186
8 Afghanistan AFG 1956 0.0218
9 Afghanistan AFG 1957 0.0343
10 Afghanistan AFG 1958 0.0380
# … with 22,373 more rows
6 start with the tidy_emissions THEN -use filter to extract rows with years == 2011 -use skim to calculate the descriptive statistics
| Name | Piped data |
| Number of rows | 220 |
| Number of columns | 4 |
| _______________________ | |
| Column type frequency: | |
| character | 2 |
| numeric | 2 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| entity | 0 | 1.00 | 4 | 32 | 0 | 220 | 0 |
| code | 12 | 0.95 | 3 | 8 | 0 | 208 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| year | 0 | 1 | 2011.00 | 0.00 | 2011.00 | 2011.00 | 2011.00 | 2011.00 | 2011.00 | ▁▁▇▁▁ |
| per_capita_co2_emissions | 0 | 1 | 5.14 | 6.04 | 0.04 | 0.82 | 3.19 | 7.39 | 39.12 | ▇▂▁▁▁ |
tidy_emissions then extract rows with year==2011 and are missing a code# A tibble: 12 x 4
entity code year per_capita_co2_emissions
<chr> <chr> <dbl> <dbl>
1 Africa <NA> 2011 1.18
2 Asia <NA> 2011 4.12
3 Asia (excl. China & India) <NA> 2011 3.91
4 EU-27 <NA> 2011 7.58
5 EU-28 <NA> 2011 7.55
6 Europe <NA> 2011 8.17
7 Europe (excl. EU-27) <NA> 2011 9.01
8 Europe (excl. EU-28) <NA> 2011 9.46
9 North America <NA> 2011 12.4
10 North America (excl. USA) <NA> 2011 5.18
11 Oceania <NA> 2011 12.1
12 South America <NA> 2011 2.69
filter to extract rows with year==2011 and without missing codes THEN -use select to drop the year variable THEN -use rename to change the variable entity to country -assign the output to emissions_2000per_capita_co2_emissions? -start with emissions_2011 THEN -use slice_max to extract then 15 rows with the per_caita_co2_emissions assign the output to max_15_emittersmax_15_emitters <- emissions_2011 %>%
slice_max(per_capita_co2_emissions,n=15)
per_capita_co2_emissions? -start with emissions_2011 THEN -use slice_min to extract the 15 rows with the lowest values -assign the output min_15_emittersmin_15_emitters <- emissions_2011 %>%
slice_min(per_capita_co2_emissions,n=15)
bind_rowsto bind together the max_15_emitters and min_15_emitters- assign the output to max_min_15max_min_15 <- bind_rows(max_15_emitters,min_15_emitters)
max_min_15 to 3 file formatsmax_min_15 %>% write_csv("max_min_15.csv")
max_min_15 %>% write_tsv("max_min_15.tsv")
max_min_15 %>% write_delim("max_min_15.psv", delim = "|")
max_min_15_csv <-read_csv("max_min_15.csv")
max_min_15_tsv <- read_tsv("max_min_15.tsv")
max_min_15_psv <- read_delim("max_min_15.psv", delim="|")
setdiff to check for any differences among max_min_15_csv, max_min_15_tsv and max_min_15_psvsetdiff(max_min_15_csv, max_min_15_tsv, max_min_15_psv)
# A tibble: 0 x 3
# … with 3 variables: country <chr>, code <chr>,
# per_capita_co2_emissions <dbl>
Are there any differences?
country in max_min_151 for plotting and assign to max_min_15_plot_data -start with emissions_2000 THEN -use mutate to reorder country according per_capital_co2_emissionsmax_min_15_plot_data <- max_min_15 %>%
mutate(country = reorder(country,per_capita_co2_emissions))
max_min_15_plot_dataggplot(data=max_min_15_plot_data,
mapping = aes(x = per_capita_co2_emissions, y = country)) +
geom_col() +
labs(title = "the top 15 and bottom 15 per capita CO2 emissions",
subtitle = "for 2011",
x = NULL,
y = NULL)

ggsave(filename = "preview.png",
path = here("_posts", "2021-03-03-reading-and-writing-data"))
preview: preview.png