Overview

This file contains a set of tasks that you need to complete in R for the lab assignment. The tasks may require you to add a code chuck, type code into a chunk, and/or execute code. Don’t forget that you need to acknowledge if you used any resources beyond class materials or got help to complete the assignment.

Additional information and examples relevant to this assignment can be found in the file “VisualizingAmountsandProportionsTutorial.html”.

The data set you will use is different than the one used in the instructions. Pay attention to the differences in the Excel files name, any variable names, and/or object names. You will need to adjust your code accordingly.

Once you have completed the assignment, you will need to knit this R Markdown file to produce an html file. You will then need to upload the .html file and this .Rmd file to AsULearn.

1. Add your Name and the Date

The first thing you need to do in this file is to add your name and date in the lines underneath this document’s title (see the code in lines 9 and 10).

2. Identify and Set Your Working Directory

You need to identify and set your working directory in this section. If you are working in the cloud version of RStudio, enter a note here to tell us that you did not need to change the working directory because you are working in the cloud.

getwd()
## [1] "/Users/rlmcollins/Desktop"
setwd("/Users/rlmcollins/Desktop")

3. Installing and Loading Packages and Data Set

You load the packages and data set you’ll use for the lab assignment in this section. In this lab we will use the packages: dyplr, tidyverse, forcats, ggplot2, and openxlsx.

library("dplyr")
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library("tidyverse")
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ ggplot2   3.5.2     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.3.0
## ✔ purrr     1.1.0     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library("openxlsx")
library("forcats")
library("ggplot2")
VisualizingVariablesData <- read.xlsx("BBQData_Assignment7.xlsx")
names(VisualizingVariablesData)
##  [1] "Observation"        "Sex"                "Age"               
##  [4] "Hometown"           "Favorite.Meat"      "Favorite.Sauce"    
##  [7] "Sweetness"          "Favorite.Side"      "Restaurant.City"   
## [10] "Restaurant.Name"    "Minutes.Driving"    "Sandwich.Price"    
## [13] "Dinner.Plate.Price" "Ribs.Price"

4. Amounts – Bar Graph 1

Create a bar graph that plots respondents’ favorite sauce.

ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Sauce)) + #"mapping" and "aesthetics" arguments
  geom_bar()  #"geom" argument

ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Meat)) + #"mapping" and "aesthetics" arguments
  geom_bar() + #"geom" argument
  labs(x="Favorite Sauce",  y="Total")

ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Meat)) + #"mapping" and "aesthetics" arguments
  geom_bar() +  #"geom" argument
  labs(x="Favorite Sauce",  y="Total") +
  scale_x_continuous(breaks = c(1, 2, 3,4,5,6,7), label = c("Eastern style", "Western style", "Kansas style", "Dry Rub", "South Carolina Mustard", "Korean style", "Other"))

ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Meat)) + #"mapping" and "aesthetics" arguments
  geom_bar(fill="purple") +  #"geom" argument
  labs(x="Favorite Sauce",  y="Total") +
  scale_x_continuous(breaks = c(1, 2, 3,4,5,6,7), label = c("Eastern style", "Western style", "Kansas style", "Dry Rub", "South Carolina Mustard", "Korean style", "Other"))

5. Amounts – Bar Graph 2

Create a bar graph that plots respondents’ favorite sauce.

ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Sauce)) + #"mapping" and "aesthetics" arguments
  geom_bar()  #"geom" argument

VisualizingVariablesData %>%  
  mutate(Favorite.Sauce.Label=NA)  %>% 
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==1,"Eastern style")) %>%
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==2,"Western style")) %>%
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==3,"Kansas style")) %>%
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==4,"Dry Rub")) %>%
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==5,"South Carolina Mustard")) %>%
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==6,"Korean style")) %>%
  mutate(Favorite.Sauce.Label=replace(Favorite.Sauce.Label,Favorite.Sauce==7,"Other"))-> VisualizingVariablesData
ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Sauce.Label)) + #"mapping" and "aesthetics" arguments
  geom_bar()  #"geom" argument

ggplot(data = VisualizingVariablesData,   #"data" argument
       mapping = aes(x = Favorite.Sauce.Label)) + #"mapping" and "aesthetics" arguments
  geom_bar() + #"geom" argument
labs(x="Favorite Sauce",  y="Total") 

ggplot(data = VisualizingVariablesData,   
       mapping = aes(x = fct_rev(fct_infreq(Favorite.Sauce.Label)))) + 
  geom_bar(fill="orange")  +
  labs(x="Favorite Sauce", y="Total")

ggplot(data = VisualizingVariablesData,   
       mapping = aes(x = fct_infreq(Favorite.Sauce.Label))) + 
  geom_bar()  +
  labs(x="Favorite Sauce", y="Total")

6. Total respondents that perfer each type of suace.

Identify how many total respondents prefer each type of sauce. Save the count as a data object. Use the head() command to display the data.

VisualizingVariablesData %>%
  count(Favorite.Sauce.Label)
##     Favorite.Sauce.Label   n
## 1                Dry Rub  46
## 2          Eastern style 162
## 3           Kansas style  26
## 4           Korean style  27
## 5                  Other  30
## 6 South Carolina Mustard  25
## 7          Western style  63

7. Proportions - Pie Chart 1

Create a pie chart that plots the respondents’ favorite sauce. You will need to transform the counts you calculated above into percentages and save these as a new data object before you can graph the data.

VisualizingVariablesData %>%
  count(Favorite.Sauce.Label) -> FavoriteSauceData
head(FavoriteSauceData)
##     Favorite.Sauce.Label   n
## 1                Dry Rub  46
## 2          Eastern style 162
## 3           Kansas style  26
## 4           Korean style  27
## 5                  Other  30
## 6 South Carolina Mustard  25
ggplot(FavoriteSauceData,                         # data argument
  aes(x="", y=n, fill=Favorite.Sauce.Label)) +  # mapping and aesthetics arguments
  geom_bar(stat="identity", width=1,  color="white") +  #geom to create bar graph of                                                              proportions 
  coord_polar("y",start=0)  #geom argument to transform bar graph to pie chart

FavoriteSauceData %>%
  mutate(Percentage.Respondents = n/sum(n)*100) -> FavoriteSauceData
head(FavoriteSauceData)
##     Favorite.Sauce.Label   n Percentage.Respondents
## 1                Dry Rub  46              12.137203
## 2          Eastern style 162              42.744063
## 3           Kansas style  26               6.860158
## 4           Korean style  27               7.124011
## 5                  Other  30               7.915567
## 6 South Carolina Mustard  25               6.596306
FavoriteSauceData %>%
  mutate(Percentage.Respondents=round(Percentage.Respondents,1)) -> FavoriteSauceData
head(FavoriteSauceData)
##     Favorite.Sauce.Label   n Percentage.Respondents
## 1                Dry Rub  46                   12.1
## 2          Eastern style 162                   42.7
## 3           Kansas style  26                    6.9
## 4           Korean style  27                    7.1
## 5                  Other  30                    7.9
## 6 South Carolina Mustard  25                    6.6
ggplot(FavoriteSauceData,                      
  aes(x="", y=Percentage.Respondents, fill=Favorite.Sauce.Label)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) 

ggplot(FavoriteSauceData,                      
  aes(x="", y=Percentage.Respondents, fill=Favorite.Sauce.Label)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) +
  geom_text(aes(label = Percentage.Respondents), position = position_stack(vjust = 0.5))

ggplot(FavoriteSauceData,                      
  aes(x="", y=Percentage.Respondents, fill=Favorite.Sauce.Label)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) +
  geom_text(aes(label = Percentage.Respondents), position = position_stack(vjust = 0.5)) +
  guides(fill=guide_legend("Favorite Sauce")) +
  theme_void()      

ggplot(FavoriteSauceData,                      
  aes(x="", y=Percentage.Respondents, fill=Favorite.Sauce.Label)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) +
  geom_text(aes(label = Percentage.Respondents), position = position_stack(vjust = 0.5)) +
  guides(fill=guide_legend("Favorite Sauce")) 

8. Proportions - Pie Chart 2

Create a pie chart that plots the respondents’ preferred level of sweetness. You need to identify how many total respondents prefer each type of sauce. Save the count as a data object. Then transform the count into percentages and save these as a new data object before you can graph the data.

VisualizingVariablesData %>%
  count(Sweetness)
##   Sweetness   n
## 1         1  30
## 2         2  83
## 3         3 163
## 4         4  85
## 5         5  18
VisualizingVariablesData %>%
  count(Sweetness) -> SweetnessData
head(SweetnessData)
##   Sweetness   n
## 1         1  30
## 2         2  83
## 3         3 163
## 4         4  85
## 5         5  18
ggplot(SweetnessData,                         # data argument
  aes(x="", y=n, fill=Sweetness)) +  # mapping and aesthetics arguments
  geom_bar(stat="identity", width=1,  color="white") +  #geom to create bar graph of                                                              proportions 
  coord_polar("y",start=0)  #geom argument to transform bar graph to pie chart

SweetnessData %>%
  mutate(Percentage.Respondents = n/sum(n)*100) -> SweetnessData
head(SweetnessData)
##   Sweetness   n Percentage.Respondents
## 1         1  30               7.915567
## 2         2  83              21.899736
## 3         3 163              43.007916
## 4         4  85              22.427441
## 5         5  18               4.749340
SweetnessData %>%
  mutate(Percentage.Respondents=round(Percentage.Respondents)) -> SweetnessData
head(SweetnessData)
##   Sweetness   n Percentage.Respondents
## 1         1  30                      8
## 2         2  83                     22
## 3         3 163                     43
## 4         4  85                     22
## 5         5  18                      5
ggplot(SweetnessData,                      
  aes(x="", y=Percentage.Respondents, fill=Sweetness)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) 

ggplot(SweetnessData,                      
  aes(x="", y=Percentage.Respondents, fill=Sweetness)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) +
  geom_text(aes(label = Percentage.Respondents), position = position_stack(vjust = 0.5))

ggplot(SweetnessData,                      
  aes(x="", y=Percentage.Respondents, fill=Sweetness)) +
  geom_bar(stat="identity", width=1,  color="white") + 
  coord_polar("y",start=0) +
  geom_text(aes(label = Percentage.Respondents), position = position_stack(vjust = 0.5)) +
  guides(fill=guide_legend("Sweetness")) +
  theme_void()      

9. Did you recieve help?

Enter the names of anyone one that assisted you with completing this lab. If no one helped you complete the assignment, just type out that no one helped you No one helped me

10. Did you provide anyone help with completing this lab?

Enter the names of anyone that you assisted with completing this lab. If you did not help anyone, then just type out that you didn’t help anyone. Saniya Boger

11. Knit the Document

Click the “Knit” button to publish your work as an html document. This document or file will appear in the folder specified by your working directory. You will need to upload both this RMarkdown file and the html file it produces to AsU Learn to get all of the lab points for this week.