Data 110 “nations” homework assignment using the “nations” dataset.


setwd("C:/Users/kris.sutton/OneDrive - Government of The District of Columbia/Desktop/Personal/Data 110/R Studio/Datasets")
Warning: The working directory was changed to C:/Users/kris.sutton/OneDrive - Government of The District of Columbia/Desktop/Personal/Data 110/R Studio/Datasets inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
nations <- read.csv("nations.csv")
library(readr)
library(ggplot2)
library(scales)
library(dplyr)
library(RColorBrewer)
nations
NA

The purpose of the assignment is to recreate two ggplots from lecture using the provided “nations” data set. The first shows China’s rise in GDP compared to the other three highest GDP countries: US, Germany, and Japan. The second shows GDP growth by global region.

The “nations” dataset has 10 variables. Five are chr type, four num, and one int.

The first step is recreate the filter of the four countries from lecture, and arrange data by year.


## filter for four countries, arrange by year.
nations <- nations %>%
  mutate(gdp_tn = gdp_percap*population/1000000000000)
big4 <- nations %>%
  filter(iso3c == "CHN" | iso3c == "DEU" | iso3c == "JPN" | iso3c == "USA") %>%
  arrange(year)

big4$gdp_tn <- round(big4$gdp_tn, digit=2)

head(big4)
NA

Next, create first ggplot using ColorBrewer pallette, legend, and axis labels. The resulting graph is a copy of the first graph from lecture.


p1 <- big4 %>% ggplot(aes(year, gdp_tn, color = country)) +  
  geom_point(show.legend = FALSE, alpha=0.4)  + 
  geom_line() +
  scale_y_continuous(limits = c(0,20), breaks=seq(5, 15, 5)) +
  scale_x_continuous(limits = c(1990, 2015), breaks=seq(1990, 2015, 5)) +
  scale_color_brewer(palette = "Set1") +
  labs(title = "China's Rise to \nBecome the Largest Economy", x = "Year", y = "GDP ($ trillion)") +
  theme_minimal() +
  guides(col=guide_legend(""), linetype = guide_legend) 

p1  

Time for second chart which will be a stacked area design. First step is to prepare the data.


regions <- nations %>%
  group_by(year,region) %>%
  summarize(gdp_tn = sum(gdp_tn, na.rm = TRUE)) %>%
  arrange(year,region)
`summarise()` has grouped output by 'year'. You can override using the `.groups` argument.
head(regions)
NA

Now to create ggplot using geom_area and color brewer palette “set2”. The resulting graph is a copy of the second graph from lecture.


p2 <- regions %>% ggplot(aes(year, gdp_tn, fill = region)) +  
  geom_area(colour = "white") +
  scale_y_continuous(limits = c(0,100), breaks=seq(20, 120, 20)) +
  scale_x_continuous(limits = c(1990, 2012), breaks=seq(1990, 2020,5)) +
  scale_fill_brewer(palette = "Set2") +
  labs(title = "GDP by World Bank Region", x = "Year", y = "GDP ($ trillion)") +
  theme_minimal() 
  

p2  
Warning: Removed 14 rows containing missing values (position_stack).

LS0tDQp0aXRsZTogIktTIFVuaXQgNCBOYXRpb25zIEhvbWV3b3JrIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KRGF0YSAxMTAgIm5hdGlvbnMiIGhvbWV3b3JrIGFzc2lnbm1lbnQgdXNpbmcgdGhlICJuYXRpb25zIiBkYXRhc2V0Lg0KDQpgYGB7cn0NCg0Kc2V0d2QoIkM6L1VzZXJzL2tyaXMuc3V0dG9uL09uZURyaXZlIC0gR292ZXJubWVudCBvZiBUaGUgRGlzdHJpY3Qgb2YgQ29sdW1iaWEvRGVza3RvcC9QZXJzb25hbC9EYXRhIDExMC9SIFN0dWRpby9EYXRhc2V0cyIpDQpuYXRpb25zIDwtIHJlYWQuY3N2KCJuYXRpb25zLmNzdiIpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShzY2FsZXMpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQpuYXRpb25zDQoNCmBgYA0KDQpUaGUgcHVycG9zZSBvZiB0aGUgYXNzaWdubWVudCBpcyB0byByZWNyZWF0ZSB0d28gZ2dwbG90cyBmcm9tIGxlY3R1cmUgdXNpbmcgdGhlIHByb3ZpZGVkICJuYXRpb25zIiBkYXRhIHNldC4gIFRoZSBmaXJzdCBzaG93cyBDaGluYSdzIHJpc2UgaW4gR0RQIGNvbXBhcmVkIHRvIHRoZSBvdGhlciB0aHJlZSBoaWdoZXN0IEdEUCBjb3VudHJpZXM6IFVTLCBHZXJtYW55LCBhbmQgSmFwYW4uICBUaGUgc2Vjb25kIHNob3dzIEdEUCBncm93dGggYnkgZ2xvYmFsIHJlZ2lvbi4NCg0KVGhlICJuYXRpb25zIiBkYXRhc2V0IGhhcyAxMCB2YXJpYWJsZXMuICBGaXZlIGFyZSBjaHIgdHlwZSwgZm91ciBudW0sIGFuZCBvbmUgaW50Lg0KDQpUaGUgZmlyc3Qgc3RlcCBpcyByZWNyZWF0ZSB0aGUgZmlsdGVyIG9mIHRoZSBmb3VyIGNvdW50cmllcyBmcm9tIGxlY3R1cmUsIGFuZCBhcnJhbmdlIGRhdGEgYnkgeWVhci4NCg0KYGBge3J9DQoNCiMjIGZpbHRlciBmb3IgZm91ciBjb3VudHJpZXMsIGFycmFuZ2UgYnkgeWVhci4NCm5hdGlvbnMgPC0gbmF0aW9ucyAlPiUNCiAgbXV0YXRlKGdkcF90biA9IGdkcF9wZXJjYXAqcG9wdWxhdGlvbi8xMDAwMDAwMDAwMDAwKQ0KYmlnNCA8LSBuYXRpb25zICU+JQ0KICBmaWx0ZXIoaXNvM2MgPT0gIkNITiIgfCBpc28zYyA9PSAiREVVIiB8IGlzbzNjID09ICJKUE4iIHwgaXNvM2MgPT0gIlVTQSIpICU+JQ0KICBhcnJhbmdlKHllYXIpDQoNCmJpZzQkZ2RwX3RuIDwtIHJvdW5kKGJpZzQkZ2RwX3RuLCBkaWdpdD0yKQ0KDQpoZWFkKGJpZzQpDQoNCmBgYA0KDQpOZXh0LCBjcmVhdGUgZmlyc3QgZ2dwbG90IHVzaW5nIENvbG9yQnJld2VyIHBhbGxldHRlLCBsZWdlbmQsIGFuZCBheGlzIGxhYmVscy4gIFRoZSByZXN1bHRpbmcgZ3JhcGggaXMgYSBjb3B5IG9mIHRoZSBmaXJzdCBncmFwaCBmcm9tIGxlY3R1cmUuDQoNCmBgYHtyfQ0KDQpwMSA8LSBiaWc0ICU+JSBnZ3Bsb3QoYWVzKHllYXIsIGdkcF90biwgY29sb3IgPSBjb3VudHJ5KSkgKyAgDQogIGdlb21fcG9pbnQoc2hvdy5sZWdlbmQgPSBGQUxTRSwgYWxwaGE9MC40KSAgKyANCiAgZ2VvbV9saW5lKCkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLDIwKSwgYnJlYWtzPXNlcSg1LCAxNSwgNSkpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMTk5MCwgMjAxNSksIGJyZWFrcz1zZXEoMTk5MCwgMjAxNSwgNSkpICsNCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiU2V0MSIpICsNCiAgbGFicyh0aXRsZSA9ICJDaGluYSdzIFJpc2UgdG8gXG5CZWNvbWUgdGhlIExhcmdlc3QgRWNvbm9teSIsIHggPSAiWWVhciIsIHkgPSAiR0RQICgkIHRyaWxsaW9uKSIpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgZ3VpZGVzKGNvbD1ndWlkZV9sZWdlbmQoIiIpLCBsaW5ldHlwZSA9IGd1aWRlX2xlZ2VuZCkgDQoNCnAxICANCg0KYGBgDQoNClRpbWUgZm9yIHNlY29uZCBjaGFydCB3aGljaCB3aWxsIGJlIGEgc3RhY2tlZCBhcmVhIGRlc2lnbi4gIEZpcnN0IHN0ZXAgaXMgdG8gcHJlcGFyZSB0aGUgZGF0YS4NCg0KYGBge3J9DQoNCiMjICBncm91cCBieSByZWdpb25zIGFuZCBhcnJhbmdlIGJ5IHllYXINCnJlZ2lvbnMgPC0gbmF0aW9ucyAlPiUNCiAgZ3JvdXBfYnkoeWVhcixyZWdpb24pICU+JQ0KICBzdW1tYXJpemUoZ2RwX3RuID0gc3VtKGdkcF90biwgbmEucm0gPSBUUlVFKSkgJT4lDQogIGFycmFuZ2UoeWVhcixyZWdpb24pDQoNCmhlYWQocmVnaW9ucykNCg0KYGBgDQoNCk5vdyB0byBjcmVhdGUgZ2dwbG90IHVzaW5nIGdlb21fYXJlYSBhbmQgY29sb3IgYnJld2VyIHBhbGV0dGUgInNldDIiLiAgVGhlIHJlc3VsdGluZyBncmFwaCBpcyBhIGNvcHkgb2YgdGhlIHNlY29uZCBncmFwaCBmcm9tIGxlY3R1cmUuDQoNCmBgYHtyfQ0KDQpwMiA8LSByZWdpb25zICU+JSBnZ3Bsb3QoYWVzKHllYXIsIGdkcF90biwgZmlsbCA9IHJlZ2lvbikpICsgIA0KICBnZW9tX2FyZWEoY29sb3VyID0gIndoaXRlIikgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLDEwMCksIGJyZWFrcz1zZXEoMjAsIDEyMCwgMjApKSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKDE5OTAsIDIwMTIpLCBicmVha3M9c2VxKDE5OTAsIDIwMjAsNSkpICsNCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJTZXQyIikgKw0KICBsYWJzKHRpdGxlID0gIkdEUCBieSBXb3JsZCBCYW5rIFJlZ2lvbiIsIHggPSAiWWVhciIsIHkgPSAiR0RQICgkIHRyaWxsaW9uKSIpICsNCiAgdGhlbWVfbWluaW1hbCgpIA0KDQpwMiAgDQoNCmBgYA0K