library(tidyverse)Airquality Assignment
Airquality Tutorial and Homework Assignment
Load in the library
Load library tidyverse in order to access dplyr and ggplot2
The source for this dataset is the New York State Department of Conservation and the National Weather Service of 1973 for five months from May to September recorded daily.
Load the dataset into your global environment
Because airquality is a pre-built dataset, we can write it to our data directory to store it for later use.
data("airquality")Look at the structure of the data
In the global environment, click on the row with the airquality dataset and it will take you to a “spreadsheet” view of the data.
View the data using the “head” function
The function, head, will only disply the first 6 rows of the dataset. Notice in the global environment to the right, there are 153 observations (rows)
head(airquality) Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
Notice that all the variables are classified as either integers or continuous values .
Calculat Summary Statistics
If you want to look at specific statistics, here are some variations on coding. Here are 2 different ways to calculate “mean.”
mean(airquality$Temp)[1] 77.88235
mean(airquality[,4])[1] 77.88235
For the second way to calculate the mean, the matrix [row,column] is looking for column #4, which is the Temp column and we use all rows
Calculate Median, Standar Deviation, and Variance
median(airquality$Temp)[1] 79
sd(airquality$Wind)[1] 3.523001
var(airquality$Wind)[1] 12.41154
Rename the Months from number to names
Sometimes we prefer the months to be numerical, but here, we need them as the month names. There are MANY ways to do this. Here is one way to convert numbers 5 - 9 to May through September
airquality$Month[airquality$Month == 5]<- "May"
airquality$Month[airquality$Month == 6]<- "June"
airquality$Month[airquality$Month == 7]<- "July"
airquality$Month[airquality$Month == 8]<- "August"
airquality$Month[airquality$Month == 9]<- "September"Now look at the summary statistics of the dataset
See how Month has changed to have characters instead of numbers (it is now classified as “character” rather than “integer”)
summary(airquality$Month) Length Class Mode
153 character character
Month is a categorical variable with different levels, called factors
This is one way to reorder the Months so they do not default to alphabetical (you will see another way to reorder DIRECTLY in the chunk that creates the plot below in Plot #1
airquality$Month<-factor(airquality$Month,
levels=c("May", "June","July", "August", "September"))Plot 1: Create a histogram categorized by Month
Here is a first attempt at viewing a histogram of temperature by the months May through September. We will see that temperatures increase over these months. The median temperature appears to be about 75 degrees.
fill = Month colors the histogram by months between May - Sept.
scale_fill_discrete(name = “Month”…) provides the month names on the right side as a legend in chronological order. This is a different way to order than what was shown above.
labs allows us to add a title, axes labels, and a caption for the data source
Plot 1 Code
p1 <- airquality |>
ggplot(aes(x=Temp, fill=Month)) +
geom_histogram(position="identity")+
scale_fill_discrete(name = "Month",
labels = c("May", "June","July", "August", "September")) +
labs(x = "Monthly Temperatures from May - Sept",
y = "Frequency of Temps",
title = "Histogram of Monthly Temperatures from May - Sept, 1973",
caption = "New York State Department of Conservation and the National Weather Service")Plot 1 Output
p1`stat_bin()` using `bins = 30`. Pick better value `binwidth`.
Improve the histogram of Average Temperature by Month
Outline the bars in white using the color = “white” command
Use alpha to add some transparency (values between 0 and 1)
Change the binwidth
Add some transparency and white borders around the histogram bars.
Plot 2 Code
p2 <- airquality |>
ggplot(aes(x=Temp, fill=Month)) +
geom_histogram(position="identity", alpha=0.5, binwidth = 5, color = "white")+
scale_fill_discrete(name = "Month", labels = c("May", "June","July", "August", "September")) +
labs(x = "Monthly Temperatures from May - Sept",
y = "Frequency of Temps",
title = "Histogram of Monthly Temperatures from May - Sept, 1973",
caption = "New York State Department of Conservation and the National Weather Service")Plot 2 Output
p2Plot 3: Create side-by-side boxplots categorized by Month
We can see that August has the highest temperatures based on the boxplot distribution.
Plot 3 Code
p3 <- airquality |>
ggplot(aes(Month, Temp, fill = Month)) +
labs(x = "Months from May through September", y = "Temperatures",
title = "Side-by-Side Boxplot of Monthly Temperatures",
caption = "New York State Department of Conservation and the National Weather Service") +
geom_boxplot() +
scale_fill_discrete(name = "Month", labels = c("May", "June","July", "August", "September"))Plot 3 Output
p3Plot 4: Side by Side Boxplots in Gray Scale
Make the same side-by-side boxplots, but in grey-scale
Use the scale_fill_grey command for the grey-scale legend, and again, use fill=Month in the aesthetics
Plot 4 Code
Here we just changed the color palette to gray scale using scale_fill_grey
p4 <- airquality |>
ggplot(aes(Month, Temp, fill = Month)) +
labs(x = "Monthly Temperatures", y = "Temperatures",
title = "Side-by-Side Boxplot of Monthly Temperatures",
caption = "New York State Department of Conservation and the National Weather Service") +
geom_boxplot()+
scale_fill_grey(name = "Month", labels = c("May", "June","July", "August", "September"))Plot 4 Output
p4Plot 5: Scarterplot of wind over the days of these months
Plot 5 Code
p5 <- airquality |>
ggplot(aes(x = Day, y = Wind, color = Month))+
geom_point()+
scale_color_discrete(name = "Month",
labels = c("May", "June","July", "August", "September")) +
labs(x = "Days of Month from May - Sept",
y = "Wind Speed ",
title = "Scarterplot of Daily wind from May - Sept, 1973",
caption = "New York State Department of Conservation and the National Weather Service")Plot 5 Output
p5Brief Essay
I created a scatterplot using the airquality dataset. The x-axis represents the days of the month and the y-axis represents the wind speed. Each point shows the wind speed on a particular day and the points are colored by Month helping me to see the different months from May to September allowing to see easily each day . The plot shows that wind speed varies from day to day and across different months. Some days have higher wind speeds while others are lower example in June we have about 25mph. Coloring by month allows comparison of wind variability between months. The different codes I used are : ggplot(aes(x = Day, y = Wind, color = Month)) for the aesthetic to give value to my graph , geom_point() to create the scatterplot points, I attempted to use scale_color_discrete (name = “Month”, labels = c(“May”, “June”,“July”, “August”, “September”)) to adjust colors by month and also asked R to chronologically order the months.I used labs() to name x and y axis labels , title, and caption.