Notice that all the variables are classified as either integers or continuous values .
Calculate 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)
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, Standard 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
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
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") #provide the data sourcep1
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Plot Plot 2: 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")p2
Plot 2 Output
Here July stands out for having high frequency of 85 degree temperatures. The dark purple color indicates overlaps of months due to the transparency.
Did this improve the readability of the plot?
Plot 3: Create side-by-side boxplots categorized by Month
We can see that August has the highest temperatures based on the boxplot distribution.
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"))p3
Plot 3
Notice that the points above and below the box plots in June and July are outlines.
#Plot 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"))p4
Plot 5
Now make one new plot on your own, that is meaningfully different from the 4 I have shown you. You can select any of the variables in this dataset. Be sure to explore the dataset to see which variables are included that we have not explored yet. You may create a scatterplot, histogram, boxplot, or something else. Be sure to include a title, axes labels, and caption for the datasource in your Plot 5. Then finally ……
Plot 5 Code
mean(airquality$Wind)
[1] 9.957516
median(airquality$Wind)
[1] 9.7
sd(airquality$Wind)
[1] 3.523001
var(airquality$Wind)
[1] 12.41154
p5 <- airquality |>ggplot(aes(x=Wind, fill=Month)) +geom_histogram(position="dodge", binwidth=5 , color="Black")+scale_fill_brewer(name ="Month", labels =c("May", "June","July", "August", "September")) +labs(x ="Monthly Wind from May - Sept", y ="Average Wind Speed (MPH)",title ="Histogram of Monthly Wind from May - Sept, 1973",caption ="New York State Department of Conservation and the National Weather Service") #provide the data source p5
The plot type is a histogram of the average wind speed (in MPH) captured in New York State from May to September 1973. The boxes are organized by different shades of blue. To customize the color of the boxes, I adjusted the scale_fill and explored the fill options, I decided to choose the brewer fill. I decided to add an outline around the boxes, so I set the binwidth to 5 and added color = black so that viewers could clearly see the months. Additionally, I wanted the boxes to be side by side, so I changed the position of the histogram and replaced identity with dodge. The way I formatted the code was similar to that of plot 2, but I replaced “temp” with “wind.” in the title and axises.