Prof. Eric A. Suess
So how should you complete your homework for this class?
- First thing to do is type all of your information about the problems
you complete in the text part of your Quarto Notebook.
- Second thing to do is type all of your R code into R chunks that can
be run.
- If you load the tidyverse in an Quarto Notebook chunk, be sure to
include the “#| messages = FALE”.
- Last thing is to spell check your R Notebook. Edit > Check
Spelling… or hit the F7 key.
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
LS0tCnRpdGxlOiAnU3RhdC4gNjUxIFNlY3Rpb24gMSBvciAyOiBIb21ld29yayAyJwpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCioqUHJvZi4gRXJpYyBBLiBTdWVzcyoqCgpTbyBob3cgc2hvdWxkIHlvdSBjb21wbGV0ZSB5b3VyIGhvbWV3b3JrIGZvciB0aGlzIGNsYXNzPwoKLSBGaXJzdCB0aGluZyB0byBkbyBpcyB0eXBlIGFsbCBvZiB5b3VyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9ibGVtcyB5b3UgY29tcGxldGUgaW4gdGhlIHRleHQgcGFydCBvZiB5b3VyIFF1YXJ0byBOb3RlYm9vay4KLSBTZWNvbmQgdGhpbmcgdG8gZG8gaXMgdHlwZSBhbGwgb2YgeW91ciBSIGNvZGUgaW50byBSIGNodW5rcyB0aGF0IGNhbiBiZSBydW4uCi0gSWYgeW91IGxvYWQgdGhlIHRpZHl2ZXJzZSBpbiBhbiBRdWFydG8gTm90ZWJvb2sgY2h1bmssIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUgIiN8IG1lc3NhZ2VzID0gRkFMRSIuCi0gTGFzdCB0aGluZyBpcyB0byBzcGVsbCBjaGVjayB5b3VyIFIgTm90ZWJvb2suICBFZGl0ID4gQ2hlY2sgU3BlbGxpbmcuLi4gb3IgaGl0IHRoZSBGNyBrZXkuCgoKVXNpbmcgYW4gUXVhcnRvIE5vdGVib29rIHByb2R1Y2UgeW91ciBzb2x1dGlvbnMgdG8gdGhlIGZvbGxvd2luZyBxdWVzdGlvbnMuIFN0YXJ0IGJ5IG1ha2luZyBhbiBRdWFydG8gTm90ZWJvb2sgd2l0aCBmaWxlIG5hbWUgTGFzdG5hbWVfRmlyc3RuYW1lX1N0YXQ2NTFfaHcyLnFtZC4gVGhlbiBrbml0IHRoZSAucW1kIGZpbGUgdG8gZWl0aGVyIGEgc2VsZi1jb250YWluZWQgaHRtbCBmaWxlIExhc3RuYW1lX0ZpcnN0bmFtZV9TdGF0NjUxX2h3Mi5odG1sIG9yIC5wZGYuIFVzZSB5b3VyIG93biBsYXN0IG5hbWUgYW5kIGZpcnN0IG5hbWUgaW4gdGhlIGZpbGVuYW1lLiBBdCB0aGUgdG9wIG9mIHlvdXIgZmlyc3QgcGFnZSB5b3Ugc2hvdWxkIGluY2x1ZGUgTmFtZSwgQ2xhc3MsIFNlY3Rpb24sIGFuZCBob21ld29yayBhc3NpZ25tZW50LgoKVGhlIGhlYWRlciBvZiB5b3VyIFF1YXJ0byBOb3RlYm9va3Mgc2hvdWxkIGluY2x1ZGUKCnRpdGxlOiAiU3RhdC4gNjUxIEhvbWV3b3JrIDIiIAoKYXV0aG9yOiAiWW91ciBuYW1lIiAKCmRhdGU6ICJOb3ZlbWJlciA2LCAyMDIzIgoKVXBsb2FkIHR3byBmaWxlcyB0byBDYW52YXMuCgpIb21ld29yayAyOgoKICAgIC0gV2F0Y2ggdGhlIFRoZSBiZWF1dHkgb2YgZGF0YSB2aXN1YWxpemF0aW9uIC0gRGF2aWQgTWNDYW5kbGVzcwogICAgLSBNYWtlIHRoZSBwbG90cyBmb3IgdGhlIENJQUNvdW50cmllcyBkYXRhIGluIFRhYmxlYXUuCgogICAgLSBDaGFwdGVyIDE0IEV4ZXJjaXNlcyBQcm9ibGVtIDMsIFByb2JsZW0gNCwgUHJvYmxlbSA2LCBQcm9ibGVtIDcsIFByb2JsZW0gOAoKXG5ld3BhZ2UKCiMgSW4gVGFibGVhdQoKRXhhbXBsZSBsaW5rIHRvIHlvdXIgVGFibGVhdSB2aXN1YWxpemF0aW9ucy4KCkhlcmUgaXMgdGhlIGxpbmsgdG8gbXkgW0NJQUNvdW50cmllcyBEYXNoYm9hcmRdKGh0dHBzOi8vcHVibGljLnRhYmxlYXUuY29tL3ZpZXdzL21hcHdpdGhkb3RzXzE2NjY4NDU3NzYwMDUwL1NoZWV0MT86bGFuZ3VhZ2U9ZW4tVVMmOmRpc3BsYXlfY291bnQ9biY6b3JpZ2luPXZpel9zaGFyZV9saW5rKQoKVGhlIHBhY21hbiBwYWNrYWdlIGluIFIgY2FuIGJlIHVzZWQgdG8gbG9hZCBtYW55IHBhY2thZ2VzIGF0IG9uY2UgdXNpbmcgdGhlIHBfbG9hZCgpIGZ1bmN0aW9uLiAKICAgICAKYGBge3J9CmxpYnJhcnkocGFjbWFuKQoKcF9sb2FkKHRpZHl2ZXJzZSwgbWFjbGVpc2gsIGx1YnJpZGF0ZSwgbWRzciwgRFQsIHBhbG1lcnBlbmd1aW5zKQpgYGAKCiMgQ2hhcHRlciAxNCBQcm9ibGVtIDMKCk5vdGUgdGhhdCBhIHNlY29uZCBkYXRlIGZyYW1lIGNhbiBiZSB1c2VkIHRvIGFkZCB0aGUgc2Vhc29ucyB0byB0aGUgcGxvdC4KCmBgYHtyfQp3aGF0ZWx5XzIwMTUgJT4lIHNlbGVjdCh3aGVuLCB0ZW1wZXJhdHVyZSkKYGBgCgpgYGB7cn0Kc2Vhc29uc18yMDE1IDwtIHRpYmJsZSgKICAgIHdoZW4gPSAoeW1kKGMoIjIwMTUgTWFyY2ggMjAiLCAiMjAxNSBKdW5lIDIxIiwgIjIwMTUgU2VwdGVtYmVyIDIzIiwgIjIwMTUgRGVjZW1iZXIgMjEiKSkpLAogICAgc2Vhc29uID0gYygiU3ByaW5nIiwgIlN1bW1lciIsICJGYWxsIiwgIldpbnRlciIpCikKc2Vhc29uc18yMDE1CmBgYAoKCgpgYGB7cn0Kd2hhdGVseV9wbG90IDwtIHdoYXRlbHlfMjAxNSAlPiUgZ2dwbG90KGFlcyh5ID0gdGVtcGVyYXR1cmUsIHggPSBhcy5EYXRlKHdoZW4pKSkgKwogIGdlb21fdmxpbmUoZGF0YSA9IHNlYXNvbnNfMjAxNSwgY29sb3IgPSAiZGFya2dyYXkiLCBhZXMoIHhpbnRlcmNlcHQgPSBhcy5EYXRlKHdoZW4pICkgKSArCiAgZ2VvbV90ZXh0KGRhdGEgPSBzZWFzb25zXzIwMTUsIGFlcyh5ID0gMzMsIGxhYmVsID0gc2Vhc29uLCBoanVzdCA9ICJsZWZ0IikpICsKICBnZW9tX2xpbmUoc2l6ZSA9IDAuMykgKyAKICBnZW9tX3Ntb290aCgpICsKICBzY2FsZV94X2RhdGUoKQoKd2hhdGVseV9wbG90CmBgYAoKIyBDaGFwdGVyIDE0IFByb2JsZW0gNAoKVGhlIFZpb2xhdGlvbnMgZGF0YXNldCBpcyBpbiB0aGUgbWRzciBwYWNrYWdlLiAgTGV0IGxvb2sgYXQgdGhlIHRhYmxlcyBpbiB0aGUgZGF0YXNldC4KCgpgYGB7cn0KVmlvbGF0aW9ucwpgYGAKCmBgYHtyfQpWaW9sYXRpb25Db2RlcwpgYGAKCgpgYGB7cn0KQ3Vpc2luZXMKYGBgCgpKb2luIHRoZSBDdWlzaW5lcyB0byB0aGUgVmlvbGF0aW9ucyBkYXRhZnJhbWUuCgpgYGB7cn0KbWVyZ2VkVmlvbGF0aW9ucyA8LSBWaW9sYXRpb25zICU+JQogIHJpZ2h0X2pvaW4oQ3Vpc2luZXMpCgptZXJnZWRWaW9sYXRpb25zCmBgYAoKYGBge3J9Cm1lcmdlZFZpb2xhdGlvbnMgJT4lIHNlbGVjdChkYmEsIGJvcm8sIGN1aXNpbmVfZGVzY3JpcHRpb24pICU+JSAKICBncm91cF9ieShjdWlzaW5lX2Rlc2NyaXB0aW9uKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuX2Rpc3RpbmN0KGRiYSkpICU+JSAKICBmaWx0ZXIoY3Vpc2luZV9kZXNjcmlwdGlvbiA9PSAiUGl6emEiKQoKbWVyZ2VkVmlvbGF0aW9ucyAlPiUgc2VsZWN0KGRiYSwgYm9ybywgY3Vpc2luZV9kZXNjcmlwdGlvbikgJT4lIAogIGZpbHRlcihib3JvID09ICJCUk9PS0xZTiIpICU+JSAKICBncm91cF9ieShjdWlzaW5lX2Rlc2NyaXB0aW9uKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuX2Rpc3RpbmN0KGRiYSkpICU+JSAKICBmaWx0ZXIoY3Vpc2luZV9kZXNjcmlwdGlvbiA9PSAiQ2FyaWJiZWFuIikKCmBgYAoKUHJvdmlkZSB0aGUgbGluayB0byB5b3VyIHNoaW55YXBwLmlvIFt2aW9sYXRpb25zX2FwcF0oaHR0cHM6Ly9lc3Vlc3Muc2hpbnlhcHBzLmlvL3Zpb2xhdGlvbnMvKQoKIyBDaGFwdGVyIDE0IFByb2JsZW0gNgoKYGBge3J9CmxpYnJhcnkobW9zYWljRGF0YSkKcCA8LSBIRUxQcmN0ICU+JSBnZ3Bsb3QoYWVzKHggPSBhZ2UsIHkgPSBjZXNkKSkgKwogICAgZ2VvbV9wb2ludCgpICsKICAgIHRoZW1lX2NsYXNzaWMoKSArCiAgICBzdGF0X3Ntb290aChtZXRob2QgPSAibG9lc3MiLCBmb3JtdWxhID0geSB+IHgsIHNpemUgPSAyKQpnZ0V4dHJhOjpnZ01hcmdpbmFsKHAsIHR5cGUgPSAiaGlzdG9ncmFtIiwgYmlud2lkdGggPSAzKQpgYGAKCgojIENoYXB0ZXIgMTQgUHJvYmxlbSA3CgoKCmBgYHtyfQpwZW5ndWlucwpgYGAKCmBgYHtyfQpuYW1lcyhwZW5ndWlucykKCnNldGRpZmYobmFtZXMocGVuZ3VpbnMpLCAiU3BlY2llcyIpCgpwZW5ndWlucyAlPiUgZ2dwbG90KGFlcyh4ID0gYmlsbF9sZW5ndGhfbW0sIHkgPSBiaWxsX2RlcHRoX21tLCBjb2xvciA9IHNleCApKSArCiAgZ2VvbV9wb2ludCgpCmBgYAoKYGBge3J9CnBlbmd1aW5zICU+JSAgZmlsdGVyKHNwZWNpZXMgPT0gIkFkZWxpZSIpICU+JSAKICAgIGdncGxvdCggYWVzKHggPSBiaWxsX2xlbmd0aF9tbSwgeSA9IGJpbGxfZGVwdGhfbW0sIGNvbG9yID0gc2V4KSkgKyBnZW9tX3BvaW50KCkKYGBgCgpbUGVuZ3VpbiBBcHBdKGh0dHBzOi8vZXN1ZXNzLnNoaW55YXBwcy5pby9wZW5ndWluZXMvKQoKCiMgQ2hhcHRlciAxNCBQcm9ibGVtIDgKCgoKYGBge3J9CndoYXRlbHlfMjAxNQpvcmNoYXJkXzIwMTUKYGBgCgpbTWFjbGVpc2ggQXBwXShodHRwczovL2VzdWVzcy5zaGlueWFwcHMuaW8vbWFjbGVpc2gvKQoKCgo=