Prof. Eric A. Suess

So how should you complete your homework for this class?

Using an Quarto Notebook produce your solutions to the following questions. Start by making an Quarto Notebook with file name Lastname_Firstname_Stat651_hw2.qmd. Then knit the .qmd file to either a self-contained html file Lastname_Firstname_Stat651_hw2.html or .pdf. Use your own last name and first name in the filename. At the top of your first page you should include Name, Class, Section, and homework assignment.

The header of your Quarto Notebooks should include

title: “Stat. 651 Homework 2”

author: “Your name”

date: “November 6, 2023”

Upload two files to Canvas.

Homework 2:

- Watch the The beauty of data visualization - David McCandless
- Make the plots for the CIACountries data in Tableau.

- Chapter 14 Exercises Problem 3, Problem 4, Problem 6, Problem 7, Problem 8

In Tableau

Example link to your Tableau visualizations.

Here is the link to my CIACountries Dashboard

The pacman package in R can be used to load many packages at once using the p_load() function.

library(pacman)

p_load(tidyverse, macleish, lubridate, mdsr, DT, palmerpenguins)

Chapter 14 Problem 3

Note that a second date frame can be used to add the seasons to the plot.

whately_2015 %>% select(when, temperature)
seasons_2015 <- tibble(
    when = (ymd(c("2015 March 20", "2015 June 21", "2015 September 23", "2015 December 21"))),
    season = c("Spring", "Summer", "Fall", "Winter")
)
seasons_2015
whately_plot <- whately_2015 %>% ggplot(aes(y = temperature, x = as.Date(when))) +
  geom_vline(data = seasons_2015, color = "darkgray", aes( xintercept = as.Date(when) ) ) +
  geom_text(data = seasons_2015, aes(y = 33, label = season, hjust = "left")) +
  geom_line(size = 0.3) + 
  geom_smooth() +
  scale_x_date()

whately_plot

Chapter 14 Problem 4

The Violations dataset is in the mdsr package. Let look at the tables in the dataset.

Violations
ViolationCodes
Cuisines

Join the Cuisines to the Violations dataframe.

mergedViolations <- Violations %>%
  right_join(Cuisines)
Joining with `by = join_by(cuisine_code)`
mergedViolations
mergedViolations %>% select(dba, boro, cuisine_description) %>% 
  group_by(cuisine_description) %>% 
  summarize(n = n_distinct(dba)) %>% 
  filter(cuisine_description == "Pizza")

mergedViolations %>% select(dba, boro, cuisine_description) %>% 
  filter(boro == "BROOKLYN") %>% 
  group_by(cuisine_description) %>% 
  summarize(n = n_distinct(dba)) %>% 
  filter(cuisine_description == "Caribbean")
NA

Provide the link to your shinyapp.io violations_app

Chapter 14 Problem 6

library(mosaicData)
p <- HELPrct %>% ggplot(aes(x = age, y = cesd)) +
    geom_point() +
    theme_classic() +
    stat_smooth(method = "loess", formula = y ~ x, size = 2)
ggExtra::ggMarginal(p, type = "histogram", binwidth = 3)

Chapter 14 Problem 7

penguins

penguins %>%  filter(species == "Adelie") %>% 
    ggplot( aes(x = bill_length_mm, y = bill_depth_mm, color = sex)) + geom_point()

Penguin App

Chapter 14 Problem 8

whately_2015
orchard_2015

Macleish App

LS0tCnRpdGxlOiAnU3RhdC4gNjUxIFNlY3Rpb24gMSBvciAyOiBIb21ld29yayAyJwpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCioqUHJvZi4gRXJpYyBBLiBTdWVzcyoqCgpTbyBob3cgc2hvdWxkIHlvdSBjb21wbGV0ZSB5b3VyIGhvbWV3b3JrIGZvciB0aGlzIGNsYXNzPwoKLSBGaXJzdCB0aGluZyB0byBkbyBpcyB0eXBlIGFsbCBvZiB5b3VyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9ibGVtcyB5b3UgY29tcGxldGUgaW4gdGhlIHRleHQgcGFydCBvZiB5b3VyIFF1YXJ0byBOb3RlYm9vay4KLSBTZWNvbmQgdGhpbmcgdG8gZG8gaXMgdHlwZSBhbGwgb2YgeW91ciBSIGNvZGUgaW50byBSIGNodW5rcyB0aGF0IGNhbiBiZSBydW4uCi0gSWYgeW91IGxvYWQgdGhlIHRpZHl2ZXJzZSBpbiBhbiBRdWFydG8gTm90ZWJvb2sgY2h1bmssIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUgIiN8IG1lc3NhZ2VzID0gRkFMRSIuCi0gTGFzdCB0aGluZyBpcyB0byBzcGVsbCBjaGVjayB5b3VyIFIgTm90ZWJvb2suICBFZGl0ID4gQ2hlY2sgU3BlbGxpbmcuLi4gb3IgaGl0IHRoZSBGNyBrZXkuCgoKVXNpbmcgYW4gUXVhcnRvIE5vdGVib29rIHByb2R1Y2UgeW91ciBzb2x1dGlvbnMgdG8gdGhlIGZvbGxvd2luZyBxdWVzdGlvbnMuIFN0YXJ0IGJ5IG1ha2luZyBhbiBRdWFydG8gTm90ZWJvb2sgd2l0aCBmaWxlIG5hbWUgTGFzdG5hbWVfRmlyc3RuYW1lX1N0YXQ2NTFfaHcyLnFtZC4gVGhlbiBrbml0IHRoZSAucW1kIGZpbGUgdG8gZWl0aGVyIGEgc2VsZi1jb250YWluZWQgaHRtbCBmaWxlIExhc3RuYW1lX0ZpcnN0bmFtZV9TdGF0NjUxX2h3Mi5odG1sIG9yIC5wZGYuIFVzZSB5b3VyIG93biBsYXN0IG5hbWUgYW5kIGZpcnN0IG5hbWUgaW4gdGhlIGZpbGVuYW1lLiBBdCB0aGUgdG9wIG9mIHlvdXIgZmlyc3QgcGFnZSB5b3Ugc2hvdWxkIGluY2x1ZGUgTmFtZSwgQ2xhc3MsIFNlY3Rpb24sIGFuZCBob21ld29yayBhc3NpZ25tZW50LgoKVGhlIGhlYWRlciBvZiB5b3VyIFF1YXJ0byBOb3RlYm9va3Mgc2hvdWxkIGluY2x1ZGUKCnRpdGxlOiAiU3RhdC4gNjUxIEhvbWV3b3JrIDIiIAoKYXV0aG9yOiAiWW91ciBuYW1lIiAKCmRhdGU6ICJOb3ZlbWJlciA2LCAyMDIzIgoKVXBsb2FkIHR3byBmaWxlcyB0byBDYW52YXMuCgpIb21ld29yayAyOgoKICAgIC0gV2F0Y2ggdGhlIFRoZSBiZWF1dHkgb2YgZGF0YSB2aXN1YWxpemF0aW9uIC0gRGF2aWQgTWNDYW5kbGVzcwogICAgLSBNYWtlIHRoZSBwbG90cyBmb3IgdGhlIENJQUNvdW50cmllcyBkYXRhIGluIFRhYmxlYXUuCgogICAgLSBDaGFwdGVyIDE0IEV4ZXJjaXNlcyBQcm9ibGVtIDMsIFByb2JsZW0gNCwgUHJvYmxlbSA2LCBQcm9ibGVtIDcsIFByb2JsZW0gOAoKXG5ld3BhZ2UKCiMgSW4gVGFibGVhdQoKRXhhbXBsZSBsaW5rIHRvIHlvdXIgVGFibGVhdSB2aXN1YWxpemF0aW9ucy4KCkhlcmUgaXMgdGhlIGxpbmsgdG8gbXkgW0NJQUNvdW50cmllcyBEYXNoYm9hcmRdKGh0dHBzOi8vcHVibGljLnRhYmxlYXUuY29tL3ZpZXdzL21hcHdpdGhkb3RzXzE2NjY4NDU3NzYwMDUwL1NoZWV0MT86bGFuZ3VhZ2U9ZW4tVVMmOmRpc3BsYXlfY291bnQ9biY6b3JpZ2luPXZpel9zaGFyZV9saW5rKQoKVGhlIHBhY21hbiBwYWNrYWdlIGluIFIgY2FuIGJlIHVzZWQgdG8gbG9hZCBtYW55IHBhY2thZ2VzIGF0IG9uY2UgdXNpbmcgdGhlIHBfbG9hZCgpIGZ1bmN0aW9uLiAKICAgICAKYGBge3J9CmxpYnJhcnkocGFjbWFuKQoKcF9sb2FkKHRpZHl2ZXJzZSwgbWFjbGVpc2gsIGx1YnJpZGF0ZSwgbWRzciwgRFQsIHBhbG1lcnBlbmd1aW5zKQpgYGAKCiMgQ2hhcHRlciAxNCBQcm9ibGVtIDMKCk5vdGUgdGhhdCBhIHNlY29uZCBkYXRlIGZyYW1lIGNhbiBiZSB1c2VkIHRvIGFkZCB0aGUgc2Vhc29ucyB0byB0aGUgcGxvdC4KCmBgYHtyfQp3aGF0ZWx5XzIwMTUgJT4lIHNlbGVjdCh3aGVuLCB0ZW1wZXJhdHVyZSkKYGBgCgpgYGB7cn0Kc2Vhc29uc18yMDE1IDwtIHRpYmJsZSgKICAgIHdoZW4gPSAoeW1kKGMoIjIwMTUgTWFyY2ggMjAiLCAiMjAxNSBKdW5lIDIxIiwgIjIwMTUgU2VwdGVtYmVyIDIzIiwgIjIwMTUgRGVjZW1iZXIgMjEiKSkpLAogICAgc2Vhc29uID0gYygiU3ByaW5nIiwgIlN1bW1lciIsICJGYWxsIiwgIldpbnRlciIpCikKc2Vhc29uc18yMDE1CmBgYAoKCgpgYGB7cn0Kd2hhdGVseV9wbG90IDwtIHdoYXRlbHlfMjAxNSAlPiUgZ2dwbG90KGFlcyh5ID0gdGVtcGVyYXR1cmUsIHggPSBhcy5EYXRlKHdoZW4pKSkgKwogIGdlb21fdmxpbmUoZGF0YSA9IHNlYXNvbnNfMjAxNSwgY29sb3IgPSAiZGFya2dyYXkiLCBhZXMoIHhpbnRlcmNlcHQgPSBhcy5EYXRlKHdoZW4pICkgKSArCiAgZ2VvbV90ZXh0KGRhdGEgPSBzZWFzb25zXzIwMTUsIGFlcyh5ID0gMzMsIGxhYmVsID0gc2Vhc29uLCBoanVzdCA9ICJsZWZ0IikpICsKICBnZW9tX2xpbmUoc2l6ZSA9IDAuMykgKyAKICBnZW9tX3Ntb290aCgpICsKICBzY2FsZV94X2RhdGUoKQoKd2hhdGVseV9wbG90CmBgYAoKIyBDaGFwdGVyIDE0IFByb2JsZW0gNAoKVGhlIFZpb2xhdGlvbnMgZGF0YXNldCBpcyBpbiB0aGUgbWRzciBwYWNrYWdlLiAgTGV0IGxvb2sgYXQgdGhlIHRhYmxlcyBpbiB0aGUgZGF0YXNldC4KCgpgYGB7cn0KVmlvbGF0aW9ucwpgYGAKCmBgYHtyfQpWaW9sYXRpb25Db2RlcwpgYGAKCgpgYGB7cn0KQ3Vpc2luZXMKYGBgCgpKb2luIHRoZSBDdWlzaW5lcyB0byB0aGUgVmlvbGF0aW9ucyBkYXRhZnJhbWUuCgpgYGB7cn0KbWVyZ2VkVmlvbGF0aW9ucyA8LSBWaW9sYXRpb25zICU+JQogIHJpZ2h0X2pvaW4oQ3Vpc2luZXMpCgptZXJnZWRWaW9sYXRpb25zCmBgYAoKYGBge3J9Cm1lcmdlZFZpb2xhdGlvbnMgJT4lIHNlbGVjdChkYmEsIGJvcm8sIGN1aXNpbmVfZGVzY3JpcHRpb24pICU+JSAKICBncm91cF9ieShjdWlzaW5lX2Rlc2NyaXB0aW9uKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuX2Rpc3RpbmN0KGRiYSkpICU+JSAKICBmaWx0ZXIoY3Vpc2luZV9kZXNjcmlwdGlvbiA9PSAiUGl6emEiKQoKbWVyZ2VkVmlvbGF0aW9ucyAlPiUgc2VsZWN0KGRiYSwgYm9ybywgY3Vpc2luZV9kZXNjcmlwdGlvbikgJT4lIAogIGZpbHRlcihib3JvID09ICJCUk9PS0xZTiIpICU+JSAKICBncm91cF9ieShjdWlzaW5lX2Rlc2NyaXB0aW9uKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuX2Rpc3RpbmN0KGRiYSkpICU+JSAKICBmaWx0ZXIoY3Vpc2luZV9kZXNjcmlwdGlvbiA9PSAiQ2FyaWJiZWFuIikKCmBgYAoKUHJvdmlkZSB0aGUgbGluayB0byB5b3VyIHNoaW55YXBwLmlvIFt2aW9sYXRpb25zX2FwcF0oaHR0cHM6Ly9lc3Vlc3Muc2hpbnlhcHBzLmlvL3Zpb2xhdGlvbnMvKQoKIyBDaGFwdGVyIDE0IFByb2JsZW0gNgoKYGBge3J9CmxpYnJhcnkobW9zYWljRGF0YSkKcCA8LSBIRUxQcmN0ICU+JSBnZ3Bsb3QoYWVzKHggPSBhZ2UsIHkgPSBjZXNkKSkgKwogICAgZ2VvbV9wb2ludCgpICsKICAgIHRoZW1lX2NsYXNzaWMoKSArCiAgICBzdGF0X3Ntb290aChtZXRob2QgPSAibG9lc3MiLCBmb3JtdWxhID0geSB+IHgsIHNpemUgPSAyKQpnZ0V4dHJhOjpnZ01hcmdpbmFsKHAsIHR5cGUgPSAiaGlzdG9ncmFtIiwgYmlud2lkdGggPSAzKQpgYGAKCgojIENoYXB0ZXIgMTQgUHJvYmxlbSA3CgoKCmBgYHtyfQpwZW5ndWlucwpgYGAKCmBgYHtyfQpuYW1lcyhwZW5ndWlucykKCnNldGRpZmYobmFtZXMocGVuZ3VpbnMpLCAiU3BlY2llcyIpCgpwZW5ndWlucyAlPiUgZ2dwbG90KGFlcyh4ID0gYmlsbF9sZW5ndGhfbW0sIHkgPSBiaWxsX2RlcHRoX21tLCBjb2xvciA9IHNleCApKSArCiAgZ2VvbV9wb2ludCgpCmBgYAoKYGBge3J9CnBlbmd1aW5zICU+JSAgZmlsdGVyKHNwZWNpZXMgPT0gIkFkZWxpZSIpICU+JSAKICAgIGdncGxvdCggYWVzKHggPSBiaWxsX2xlbmd0aF9tbSwgeSA9IGJpbGxfZGVwdGhfbW0sIGNvbG9yID0gc2V4KSkgKyBnZW9tX3BvaW50KCkKYGBgCgpbUGVuZ3VpbiBBcHBdKGh0dHBzOi8vZXN1ZXNzLnNoaW55YXBwcy5pby9wZW5ndWluZXMvKQoKCiMgQ2hhcHRlciAxNCBQcm9ibGVtIDgKCgoKYGBge3J9CndoYXRlbHlfMjAxNQpvcmNoYXJkXzIwMTUKYGBgCgpbTWFjbGVpc2ggQXBwXShodHRwczovL2VzdWVzcy5zaGlueWFwcHMuaW8vbWFjbGVpc2gvKQoKCgo=