Prof. Eric A. Suess

So how should you complete your homework for this class?

Using an R Notebook produce your solutions to the following questions. Start by making an R Notebook with file name Lastname_Firstname_Stat651_hw2.Rmd. Then knit the .Rmd file to either Lastname_Firstname_Stat651_hw2.docx. 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 R Notebooks should include

title: “Stat. 651 Homework 2”

author: “Your name”

date: “October 31, 2022”

Upload one file to Blackboard.

Instructions: Put all of your R code, .docx, .html, etc. files, and Tableau files into one directory. Zip the directory into a .zip file and then upload it to Blackboard. Make sure the directory has your name it it. Directory name lastname_firstname_Stat651_homework02.

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

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, 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
names(penguins)
[1] "species"           "island"           
[3] "bill_length_mm"    "bill_depth_mm"    
[5] "flipper_length_mm" "body_mass_g"      
[7] "sex"               "year"             
setdiff(names(iris), "Species")
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length"
[4] "Petal.Width" 
penguins %>% ggplot(aes(x = bill_length_mm, y = bill_depth_mm, color = sex )) +
  geom_point()

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

Penguin App

Chapter 14 Problem 8

LS0tCnRpdGxlOiAnU3RhdC4gNjUxIFNlY3Rpb24gMSBvciAyOiBIb21ld29yayAyJwpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCioqUHJvZi4gRXJpYyBBLiBTdWVzcyoqCgpTbyBob3cgc2hvdWxkIHlvdSBjb21wbGV0ZSB5b3VyIGhvbWV3b3JrIGZvciB0aGlzIGNsYXNzPwoKLSBGaXJzdCB0aGluZyB0byBkbyBpcyB0eXBlIGFsbCBvZiB5b3VyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9ibGVtcyB5b3UgY29tcGxldGUgaW4gdGhlIHRleHQgcGFydCBvZiB5b3VyIFIgTm90ZWJvb2suCi0gU2Vjb25kIHRoaW5nIHRvIGRvIGlzIHR5cGUgYWxsIG9mIHlvdXIgUiBjb2RlIGludG8gUiBjaHVua3MgdGhhdCBjYW4gYmUgcnVuLgotIElmIHlvdSBsb2FkIHRoZSB0aWR5dmVyc2UgaW4gYW4gUiBOb3RlYm9vayBjaHVuaywgYmUgc3VyZSB0byBpbmNsdWRlIHRoZSAibWVzc2FnZSA9IEZBTFNFIiBpbiB0aGUge3J9LCBzbyB7ciBtZXNzYWdlID0gRkFMU0V9LgotIExhc3QgdGhpbmcgaXMgdG8gc3BlbGwgY2hlY2sgeW91ciBSIE5vdGVib29rLiAgRWRpdCA+IENoZWNrIFNwZWxsaW5nLi4uIG9yIGhpdCB0aGUgRjcga2V5LgoKClVzaW5nIGFuIFIgTm90ZWJvb2sgcHJvZHVjZSB5b3VyIHNvbHV0aW9ucyB0byB0aGUgZm9sbG93aW5nIHF1ZXN0aW9ucy4gU3RhcnQgYnkgbWFraW5nIGFuIFIgTm90ZWJvb2sgd2l0aCBmaWxlIG5hbWUgTGFzdG5hbWVfRmlyc3RuYW1lX1N0YXQ2NTFfaHcyLlJtZC4gVGhlbiBrbml0IHRoZSAuUm1kIGZpbGUgdG8gZWl0aGVyIExhc3RuYW1lX0ZpcnN0bmFtZV9TdGF0NjUxX2h3Mi5kb2N4LiBVc2UgeW91ciBvd24gbGFzdCBuYW1lIGFuZCBmaXJzdCBuYW1lIGluIHRoZSBmaWxlbmFtZS4gQXQgdGhlIHRvcCBvZiB5b3VyIGZpcnN0IHBhZ2UgeW91IHNob3VsZCBpbmNsdWRlIE5hbWUsIENsYXNzLCBTZWN0aW9uLCBhbmQgaG9tZXdvcmsgYXNzaWdubWVudC4KClRoZSBoZWFkZXIgb2YgeW91ciBSIE5vdGVib29rcyBzaG91bGQgaW5jbHVkZQoKdGl0bGU6ICJTdGF0LiA2NTEgSG9tZXdvcmsgMiIgCgphdXRob3I6ICJZb3VyIG5hbWUiIAoKZGF0ZTogIk9jdG9iZXIgMzEsIDIwMjIiCgpVcGxvYWQgb25lIGZpbGUgdG8gQmxhY2tib2FyZC4KCkluc3RydWN0aW9uczogUHV0IGFsbCBvZiB5b3VyIFIgY29kZSwgLmRvY3gsIC5odG1sLCBldGMuIGZpbGVzLCBhbmQgVGFibGVhdSBmaWxlcyBpbnRvIG9uZSBkaXJlY3RvcnkuIFppcCB0aGUgZGlyZWN0b3J5IGludG8gYSAuemlwIGZpbGUgYW5kIHRoZW4gdXBsb2FkIGl0IHRvIEJsYWNrYm9hcmQuIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGhhcyB5b3VyIG5hbWUgaXQgaXQuIERpcmVjdG9yeSBuYW1lIGxhc3RuYW1lX2ZpcnN0bmFtZV9TdGF0NjUxX2hvbWV3b3JrMDIuCgpIb21ld29yayAyOgoKICAgIC0gV2F0Y2ggdGhlIFRoZSBiZWF1dHkgb2YgZGF0YSB2aXN1YWxpemF0aW9uIC0gRGF2aWQgTWNDYW5kbGVzcwogICAgLSBNYWtlIHRoZSBwbG90cyBmb3IgdGhlIENJQUNvdW50cmllcyBkYXRhIGluIFRhYmxlYXUuCgogICAgLSBDaGFwdGVyIDE0IEV4ZXJjaXNlcyBQcm9ibGVtIDMsIFByb2JsZW0gNCwgUHJvYmxlbSA2LCBQcm9ibGVtIDcsIFByb2JsZW0gOAoKXG5ld3BhZ2UKCiMgSW4gVGFibGVhdQoKSGVyZSBpcyB0aGUgbGluayB0byBteSBbQ0lBQ291bnRyaWVzIERhc2hib2FyZF0oaHR0cHM6Ly9wdWJsaWMudGFibGVhdS5jb20vdmlld3MvbWFwd2l0aGRvdHNfMTY2Njg0NTc3NjAwNTAvU2hlZXQxPzpsYW5ndWFnZT1lbi1VUyY6ZGlzcGxheV9jb3VudD1uJjpvcmlnaW49dml6X3NoYXJlX2xpbmspCgoKVGhlIHBhY21hbiBwYWNrYWdlIGluIFIgY2FuIGJlIHVzZWQgdG8gbG9hZCBtYW55IHBhY2thZ2VzIGF0IG9uY2UgdXNpbmcgdGhlIHBfbG9hZCgpIGZ1bmN0aW9uLiAKICAgICAKYGBge3J9CmxpYnJhcnkocGFjbWFuKQoKcF9sb2FkKHRpZHl2ZXJzZSwgbWFjbGVpc2gsIGx1YnJpZGF0ZSwgbWRzciwgRFQsIHBhbG1lcnBlbmd1aW5zKQpgYGAKCiMgQ2hhcHRlciAxNCBQcm9ibGVtIDMKCk5vdGUgdGhhdCBhIHNlY29uZCBkYXRlIGZyYW1lIGNhbiBiZSB1c2VkIHRvIGFkZCB0aGUgc2Vhc29ucyB0byB0aGUgcGxvdC4KCmBgYHtyfQp3aGF0ZWx5XzIwMTUgJT4lIHNlbGVjdCh3aGVuLCB0ZW1wZXJhdHVyZSkKYGBgCgpgYGB7cn0Kc2Vhc29uc18yMDE1IDwtIHRpYmJsZSgKICAgIHdoZW4gPSAoeW1kKGMoIjIwMTUgTWFyY2ggMjAiLCAiMjAxNSBKdW5lIDIxIiwgIjIwMTUgU2VwdGVtYmVyIDIzIiwgIjIwMTUgRGVjZW1iZXIgMjEiKSkpLAogICAgc2Vhc29uID0gYygiU3ByaW5nIiwgIlN1bW1lciIsICJGYWxsIiwgIldpbnRlciIpCikKc2Vhc29uc18yMDE1CmBgYAoKCgpgYGB7cn0Kd2hhdGVseV9wbG90IDwtIHdoYXRlbHlfMjAxNSAlPiUgZ2dwbG90KGFlcyh5ID0gdGVtcGVyYXR1cmUsIHggPSBhcy5EYXRlKHdoZW4pKSkgKwogIGdlb21fdmxpbmUoZGF0YSA9IHNlYXNvbnNfMjAxNSwgY29sb3IgPSAiZGFya2dyYXkiLCBhZXMoIHhpbnRlcmNlcHQgPSBhcy5EYXRlKHdoZW4pICkgKSArCiAgZ2VvbV90ZXh0KGRhdGEgPSBzZWFzb25zXzIwMTUsIGFlcyh5ID0gMzMsIGxhYmVsID0gc2Vhc29uLCBoanVzdCA9ICJsZWZ0IikpICsKICBnZW9tX2xpbmUoc2l6ZSA9IDAuMykgKyAKICBnZW9tX3Ntb290aCgpICsKICBzY2FsZV94X2RhdGUoKQoKd2hhdGVseV9wbG90CmBgYAoKIyBDaGFwdGVyIDE0IFByb2JsZW0gNAoKVGhlIFZpb2xhdGlvbnMgZGF0YXNldCBpcyBpbiB0aGUgbWRzciBwYWNrYWdlLiAgTGV0IGxvb2sgYXQgdGhlIHRhYmxlcyBpbiB0aGUgZGF0YXNldC4KCgpgYGB7cn0KVmlvbGF0aW9ucwpgYGAKCmBgYHtyfQpWaW9sYXRpb25Db2RlcwpgYGAKCgpgYGB7cn0KQ3Vpc2luZXMKYGBgCgpKb2luIHRoZSBDdWlzaW5lcyB0byB0aGUgVmlvbGF0aW9ucyBkYXRhZnJhbWUuCgpgYGB7cn0KbWVyZ2VkVmlvbGF0aW9ucyA8LSBWaW9sYXRpb25zICU+JQogIHJpZ2h0X2pvaW4oQ3Vpc2luZXMpCgptZXJnZWRWaW9sYXRpb25zCmBgYAoKYGBge3J9Cm1lcmdlZFZpb2xhdGlvbnMgJT4lIHNlbGVjdChkYmEsIGJvcm8sIGN1aXNpbmVfZGVzY3JpcHRpb24pICU+JSAKICBncm91cF9ieShjdWlzaW5lX2Rlc2NyaXB0aW9uKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuX2Rpc3RpbmN0KGRiYSkpICU+JSAKICBmaWx0ZXIoY3Vpc2luZV9kZXNjcmlwdGlvbiA9PSAiUGl6emEiKQoKbWVyZ2VkVmlvbGF0aW9ucyAlPiUgc2VsZWN0KGRiYSwgYm9ybywgY3Vpc2luZV9kZXNjcmlwdGlvbikgJT4lIAogIGZpbHRlcihib3JvID09ICJCUk9PS0xZTiIpICU+JSAKICBncm91cF9ieShjdWlzaW5lX2Rlc2NyaXB0aW9uKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuX2Rpc3RpbmN0KGRiYSkpICU+JSAKICBmaWx0ZXIoY3Vpc2luZV9kZXNjcmlwdGlvbiA9PSAiQ2FyaWJiZWFuIikKCmBgYAoKUHJvdmlkZSB0aGUgbGluayB0byB5b3VyIHNoaW55YXBwLmlvIFt2aW9sYXRpb25zX2FwcF0oaHR0cHM6Ly9lc3Vlc3Muc2hpbnlhcHBzLmlvL3Zpb2xhdGlvbnMvKQoKIyBDaGFwdGVyIDE0IFByb2JsZW0gNgoKYGBge3J9CmxpYnJhcnkobW9zYWljRGF0YSkKcCA8LSBIRUxQcmN0ICU+JSBnZ3Bsb3QoYWVzKHggPSBhZ2UsIHkgPSBjZXNkKSkgKwogICAgZ2VvbV9wb2ludCgpICsKICAgIHRoZW1lX2NsYXNzaWMoKSArCiAgICBzdGF0X3Ntb290aChtZXRob2QgPSAibG9lc3MiLCBmb3JtdWxhID0geSB+IHgsIHNpemUgPSAyKQpnZ0V4dHJhOjpnZ01hcmdpbmFsKHAsIHR5cGUgPSAiaGlzdG9ncmFtIiwgYmlud2lkdGggPSAzKQpgYGAKCgojIENoYXB0ZXIgMTQgUHJvYmxlbSA3CgoKCmBgYHtyfQpwZW5ndWlucwpgYGAKCmBgYHtyfQpuYW1lcyhwZW5ndWlucykKCnNldGRpZmYobmFtZXMoaXJpcyksICJTcGVjaWVzIikKCnBlbmd1aW5zICU+JSBnZ3Bsb3QoYWVzKHggPSBiaWxsX2xlbmd0aF9tbSwgeSA9IGJpbGxfZGVwdGhfbW0sIGNvbG9yID0gc2V4ICkpICsKICBnZW9tX3BvaW50KCkKYGBgCgpgYGB7cn0KcGVuZ3VpbnMgJT4lICBmaWx0ZXIoc3BlY2llcyA9PSAiQWRlbGllIikgJT4lIAogICAgZ2dwbG90KCBhZXMoeCA9IGJpbGxfbGVuZ3RoX21tLCB5ID0gYmlsbF9kZXB0aF9tbSwgY29sb3IgPSBzZXgpKSArIGdlb21fcG9pbnQoKQpgYGAKCltQZW5ndWluIEFwcF0oaHR0cHM6Ly9lc3Vlc3Muc2hpbnlhcHBzLmlvL3Blbmd1aW5lcy8pCgoKIyBDaGFwdGVyIDE0IFByb2JsZW0gOAoKCgpgYGB7cn0KCmBgYAoKCg==