# Purpose of this exercise is to investigate apply functions
# in R
#
# Background:
# You are working on a project for a meteorology bureau. You have
# been supplied weather data for 4 cities in the US: Chicago,
# New York, Houston and San Francisco.
#
# You are required to deliver the following outputs:
#
# 1. A table showing the annual averages of each observed metric
# for every city.
# 2. A table showing by how much temperature fluctuates each month
# from min to max (in %). Take min temp as the base.
# 3. A table showing the annual maximums of each observed metric
# for every city.
# 4. A table showing the annual minimums of each observed metric
# for every city.
# 5. A table showing which months the annual maximums of each
# metric were observed in every city.
#set working directory
setwd("C:/Users/Hai/Downloads/P3-Weather-Data/Weather Data/")
#import data with first column assigned to row names
CHI <- read.csv("Chicago-F.csv", row.names = 1)
NY <- read.csv("NewYork-F.csv", row.names = 1)
HOU <- read.csv("Houston-F.csv", row.names = 1)
SF <- read.csv("SanFrancisco-F.csv", row.names = 1)
#show data
CHI
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 32.00 36.00 46.00 59.00 70.00 81.00 84.00 82.00 75.00
## AvgLow_F 18.00 21.00 30.00 41.00 52.00 63.00 68.00 66.00 57.00
## AvgPrecip_inch 2.05 1.93 2.72 3.62 4.13 4.06 4.02 3.98 3.31
## DaysWithPrecip 10.00 8.00 11.00 11.00 11.00 10.00 9.00 9.00 8.00
## HoursOfSunshine 135.00 136.00 187.00 215.00 281.00 311.00 318.00 283.00 226.00
## Oct Nov Dec
## AvgHigh_F 63.00 48.00 36.00
## AvgLow_F 46.00 34.00 23.00
## AvgPrecip_inch 3.23 3.43 2.56
## DaysWithPrecip 10.00 11.00 11.00
## HoursOfSunshine 193.00 113.00 106.00
NY
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 39.0 42.00 50.00 60.00 71.00 79.0 85.00 83.00 76.00
## AvgLow_F 26.0 29.00 35.00 44.00 55.00 64.0 70.00 69.00 61.00
## AvgPrecip_inch 3.9 2.95 4.06 3.94 4.45 3.5 4.53 4.13 3.98
## DaysWithPrecip 11.0 10.00 12.00 11.00 11.00 10.0 11.00 10.00 8.00
## HoursOfSunshine 154.0 171.00 213.00 237.00 268.00 289.0 302.00 271.00 235.00
## Oct Nov Dec
## AvgHigh_F 65.00 54.00 44.00
## AvgLow_F 50.00 41.00 32.00
## AvgPrecip_inch 3.39 3.82 3.58
## DaysWithPrecip 8.00 9.00 10.00
## HoursOfSunshine 213.00 169.00 155.00
HOU
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 63.00 66.00 73.00 80.00 86.00 91.00 94.00 94.00 90.00
## AvgLow_F 43.00 47.00 53.00 59.00 68.00 74.00 75.00 75.00 70.00
## AvgPrecip_inch 3.35 3.19 3.39 3.31 5.08 5.91 3.78 3.74 4.09
## DaysWithPrecip 9.00 9.00 8.00 6.00 8.00 10.00 9.00 8.00 8.00
## HoursOfSunshine 142.00 155.00 192.00 210.00 248.00 282.00 294.00 269.00 237.00
## Oct Nov Dec
## AvgHigh_F 82.00 73.00 64.00
## AvgLow_F 61.00 52.00 45.00
## AvgPrecip_inch 5.67 4.33 3.74
## DaysWithPrecip 7.00 8.00 9.00
## HoursOfSunshine 229.00 168.00 148.00
SF
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 57.00 60.00 62.00 63.00 64.00 66.00 67 68.00 70.0
## AvgLow_F 46.00 47.00 49.00 49.00 51.00 53.00 54 55.00 55.0
## AvgPrecip_inch 4.49 4.45 3.27 1.46 0.71 0.16 0 0.08 0.2
## DaysWithPrecip 11.00 11.00 10.00 6.00 4.00 2.00 1 1.00 1.0
## HoursOfSunshine 165.00 182.00 251.00 281.00 314.00 330.00 300 272.00 267.0
## Oct Nov Dec
## AvgHigh_F 69.0 63.00 57.00
## AvgLow_F 54.0 50.00 46.00
## AvgPrecip_inch 1.1 3.15 4.57
## DaysWithPrecip 4.0 7.00 10.00
## HoursOfSunshine 243.0 189.00 156.00
#convert to matrices
CHI <- as.matrix(CHI)
NY <- as.matrix(NY)
HOU <- as.matrix(HOU)
SF <- as.matrix(SF)
#check if conversion was successful
is.matrix(CHI)
## [1] TRUE
#create list of matrices
Weather <-list(CHI=CHI, NY=NY, HOU=HOU, SF=SF)
#show list
Weather
## $CHI
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 32.00 36.00 46.00 59.00 70.00 81.00 84.00 82.00 75.00
## AvgLow_F 18.00 21.00 30.00 41.00 52.00 63.00 68.00 66.00 57.00
## AvgPrecip_inch 2.05 1.93 2.72 3.62 4.13 4.06 4.02 3.98 3.31
## DaysWithPrecip 10.00 8.00 11.00 11.00 11.00 10.00 9.00 9.00 8.00
## HoursOfSunshine 135.00 136.00 187.00 215.00 281.00 311.00 318.00 283.00 226.00
## Oct Nov Dec
## AvgHigh_F 63.00 48.00 36.00
## AvgLow_F 46.00 34.00 23.00
## AvgPrecip_inch 3.23 3.43 2.56
## DaysWithPrecip 10.00 11.00 11.00
## HoursOfSunshine 193.00 113.00 106.00
##
## $NY
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 39.0 42.00 50.00 60.00 71.00 79.0 85.00 83.00 76.00
## AvgLow_F 26.0 29.00 35.00 44.00 55.00 64.0 70.00 69.00 61.00
## AvgPrecip_inch 3.9 2.95 4.06 3.94 4.45 3.5 4.53 4.13 3.98
## DaysWithPrecip 11.0 10.00 12.00 11.00 11.00 10.0 11.00 10.00 8.00
## HoursOfSunshine 154.0 171.00 213.00 237.00 268.00 289.0 302.00 271.00 235.00
## Oct Nov Dec
## AvgHigh_F 65.00 54.00 44.00
## AvgLow_F 50.00 41.00 32.00
## AvgPrecip_inch 3.39 3.82 3.58
## DaysWithPrecip 8.00 9.00 10.00
## HoursOfSunshine 213.00 169.00 155.00
##
## $HOU
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 63.00 66.00 73.00 80.00 86.00 91.00 94.00 94.00 90.00
## AvgLow_F 43.00 47.00 53.00 59.00 68.00 74.00 75.00 75.00 70.00
## AvgPrecip_inch 3.35 3.19 3.39 3.31 5.08 5.91 3.78 3.74 4.09
## DaysWithPrecip 9.00 9.00 8.00 6.00 8.00 10.00 9.00 8.00 8.00
## HoursOfSunshine 142.00 155.00 192.00 210.00 248.00 282.00 294.00 269.00 237.00
## Oct Nov Dec
## AvgHigh_F 82.00 73.00 64.00
## AvgLow_F 61.00 52.00 45.00
## AvgPrecip_inch 5.67 4.33 3.74
## DaysWithPrecip 7.00 8.00 9.00
## HoursOfSunshine 229.00 168.00 148.00
##
## $SF
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 57.00 60.00 62.00 63.00 64.00 66.00 67 68.00 70.0
## AvgLow_F 46.00 47.00 49.00 49.00 51.00 53.00 54 55.00 55.0
## AvgPrecip_inch 4.49 4.45 3.27 1.46 0.71 0.16 0 0.08 0.2
## DaysWithPrecip 11.00 11.00 10.00 6.00 4.00 2.00 1 1.00 1.0
## HoursOfSunshine 165.00 182.00 251.00 281.00 314.00 330.00 300 272.00 267.0
## Oct Nov Dec
## AvgHigh_F 69.0 63.00 57.00
## AvgLow_F 54.0 50.00 46.00
## AvgPrecip_inch 1.1 3.15 4.57
## DaysWithPrecip 4.0 7.00 10.00
## HoursOfSunshine 243.0 189.00 156.00
#apply mean to each matrix and calculate mean on the row
apply(CHI,1,mean)
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 59.333333 43.250000 3.253333 9.916667 208.666667
apply(NY,1,mean)
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 62.33333 48.00000 3.85250 10.08333 223.08333
apply(HOU,1,mean)
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 79.666667 60.166667 4.131667 8.250000 214.500000
apply(SF,1,mean)
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 63.833333 50.750000 1.970000 5.666667 245.833333
#side note: how to recreate apply function using loops
#create empty vector
output <- NULL
#loop through each row and calculate mean then store in output vector
for (i in 1:5){
output[i] <- mean(SF[i,])
}
#show output vector
output
## [1] 63.833333 50.750000 1.970000 5.666667 245.833333
#assign names from CHI matrix
names(output) <- rownames(SF)
#show output vector -- same as apply(CHI,1,mean)
output
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 63.833333 50.750000 1.970000 5.666667 245.833333
#apply transpose function to entire list and return list
lapply(Weather, t)
## $CHI
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## Jan 32 18 2.05 10 135
## Feb 36 21 1.93 8 136
## Mar 46 30 2.72 11 187
## Apr 59 41 3.62 11 215
## May 70 52 4.13 11 281
## Jun 81 63 4.06 10 311
## Jul 84 68 4.02 9 318
## Aug 82 66 3.98 9 283
## Sep 75 57 3.31 8 226
## Oct 63 46 3.23 10 193
## Nov 48 34 3.43 11 113
## Dec 36 23 2.56 11 106
##
## $NY
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## Jan 39 26 3.90 11 154
## Feb 42 29 2.95 10 171
## Mar 50 35 4.06 12 213
## Apr 60 44 3.94 11 237
## May 71 55 4.45 11 268
## Jun 79 64 3.50 10 289
## Jul 85 70 4.53 11 302
## Aug 83 69 4.13 10 271
## Sep 76 61 3.98 8 235
## Oct 65 50 3.39 8 213
## Nov 54 41 3.82 9 169
## Dec 44 32 3.58 10 155
##
## $HOU
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## Jan 63 43 3.35 9 142
## Feb 66 47 3.19 9 155
## Mar 73 53 3.39 8 192
## Apr 80 59 3.31 6 210
## May 86 68 5.08 8 248
## Jun 91 74 5.91 10 282
## Jul 94 75 3.78 9 294
## Aug 94 75 3.74 8 269
## Sep 90 70 4.09 8 237
## Oct 82 61 5.67 7 229
## Nov 73 52 4.33 8 168
## Dec 64 45 3.74 9 148
##
## $SF
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## Jan 57 46 4.49 11 165
## Feb 60 47 4.45 11 182
## Mar 62 49 3.27 10 251
## Apr 63 49 1.46 6 281
## May 64 51 0.71 4 314
## Jun 66 53 0.16 2 330
## Jul 67 54 0.00 1 300
## Aug 68 55 0.08 1 272
## Sep 70 55 0.20 1 267
## Oct 69 54 1.10 4 243
## Nov 63 50 3.15 7 189
## Dec 57 46 4.57 10 156
#show list
Weather
## $CHI
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 32.00 36.00 46.00 59.00 70.00 81.00 84.00 82.00 75.00
## AvgLow_F 18.00 21.00 30.00 41.00 52.00 63.00 68.00 66.00 57.00
## AvgPrecip_inch 2.05 1.93 2.72 3.62 4.13 4.06 4.02 3.98 3.31
## DaysWithPrecip 10.00 8.00 11.00 11.00 11.00 10.00 9.00 9.00 8.00
## HoursOfSunshine 135.00 136.00 187.00 215.00 281.00 311.00 318.00 283.00 226.00
## Oct Nov Dec
## AvgHigh_F 63.00 48.00 36.00
## AvgLow_F 46.00 34.00 23.00
## AvgPrecip_inch 3.23 3.43 2.56
## DaysWithPrecip 10.00 11.00 11.00
## HoursOfSunshine 193.00 113.00 106.00
##
## $NY
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 39.0 42.00 50.00 60.00 71.00 79.0 85.00 83.00 76.00
## AvgLow_F 26.0 29.00 35.00 44.00 55.00 64.0 70.00 69.00 61.00
## AvgPrecip_inch 3.9 2.95 4.06 3.94 4.45 3.5 4.53 4.13 3.98
## DaysWithPrecip 11.0 10.00 12.00 11.00 11.00 10.0 11.00 10.00 8.00
## HoursOfSunshine 154.0 171.00 213.00 237.00 268.00 289.0 302.00 271.00 235.00
## Oct Nov Dec
## AvgHigh_F 65.00 54.00 44.00
## AvgLow_F 50.00 41.00 32.00
## AvgPrecip_inch 3.39 3.82 3.58
## DaysWithPrecip 8.00 9.00 10.00
## HoursOfSunshine 213.00 169.00 155.00
##
## $HOU
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 63.00 66.00 73.00 80.00 86.00 91.00 94.00 94.00 90.00
## AvgLow_F 43.00 47.00 53.00 59.00 68.00 74.00 75.00 75.00 70.00
## AvgPrecip_inch 3.35 3.19 3.39 3.31 5.08 5.91 3.78 3.74 4.09
## DaysWithPrecip 9.00 9.00 8.00 6.00 8.00 10.00 9.00 8.00 8.00
## HoursOfSunshine 142.00 155.00 192.00 210.00 248.00 282.00 294.00 269.00 237.00
## Oct Nov Dec
## AvgHigh_F 82.00 73.00 64.00
## AvgLow_F 61.00 52.00 45.00
## AvgPrecip_inch 5.67 4.33 3.74
## DaysWithPrecip 7.00 8.00 9.00
## HoursOfSunshine 229.00 168.00 148.00
##
## $SF
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 57.00 60.00 62.00 63.00 64.00 66.00 67 68.00 70.0
## AvgLow_F 46.00 47.00 49.00 49.00 51.00 53.00 54 55.00 55.0
## AvgPrecip_inch 4.49 4.45 3.27 1.46 0.71 0.16 0 0.08 0.2
## DaysWithPrecip 11.00 11.00 10.00 6.00 4.00 2.00 1 1.00 1.0
## HoursOfSunshine 165.00 182.00 251.00 281.00 314.00 330.00 300 272.00 267.0
## Oct Nov Dec
## AvgHigh_F 69.0 63.00 57.00
## AvgLow_F 54.0 50.00 46.00
## AvgPrecip_inch 1.1 3.15 4.57
## DaysWithPrecip 4.0 7.00 10.00
## HoursOfSunshine 243.0 189.00 156.00
#return value in each matrix located at 1,1
lapply(Weather,"[",1,1)
## $CHI
## [1] 32
##
## $NY
## [1] 39
##
## $HOU
## [1] 63
##
## $SF
## [1] 57
#show list
Weather
## $CHI
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 32.00 36.00 46.00 59.00 70.00 81.00 84.00 82.00 75.00
## AvgLow_F 18.00 21.00 30.00 41.00 52.00 63.00 68.00 66.00 57.00
## AvgPrecip_inch 2.05 1.93 2.72 3.62 4.13 4.06 4.02 3.98 3.31
## DaysWithPrecip 10.00 8.00 11.00 11.00 11.00 10.00 9.00 9.00 8.00
## HoursOfSunshine 135.00 136.00 187.00 215.00 281.00 311.00 318.00 283.00 226.00
## Oct Nov Dec
## AvgHigh_F 63.00 48.00 36.00
## AvgLow_F 46.00 34.00 23.00
## AvgPrecip_inch 3.23 3.43 2.56
## DaysWithPrecip 10.00 11.00 11.00
## HoursOfSunshine 193.00 113.00 106.00
##
## $NY
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 39.0 42.00 50.00 60.00 71.00 79.0 85.00 83.00 76.00
## AvgLow_F 26.0 29.00 35.00 44.00 55.00 64.0 70.00 69.00 61.00
## AvgPrecip_inch 3.9 2.95 4.06 3.94 4.45 3.5 4.53 4.13 3.98
## DaysWithPrecip 11.0 10.00 12.00 11.00 11.00 10.0 11.00 10.00 8.00
## HoursOfSunshine 154.0 171.00 213.00 237.00 268.00 289.0 302.00 271.00 235.00
## Oct Nov Dec
## AvgHigh_F 65.00 54.00 44.00
## AvgLow_F 50.00 41.00 32.00
## AvgPrecip_inch 3.39 3.82 3.58
## DaysWithPrecip 8.00 9.00 10.00
## HoursOfSunshine 213.00 169.00 155.00
##
## $HOU
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 63.00 66.00 73.00 80.00 86.00 91.00 94.00 94.00 90.00
## AvgLow_F 43.00 47.00 53.00 59.00 68.00 74.00 75.00 75.00 70.00
## AvgPrecip_inch 3.35 3.19 3.39 3.31 5.08 5.91 3.78 3.74 4.09
## DaysWithPrecip 9.00 9.00 8.00 6.00 8.00 10.00 9.00 8.00 8.00
## HoursOfSunshine 142.00 155.00 192.00 210.00 248.00 282.00 294.00 269.00 237.00
## Oct Nov Dec
## AvgHigh_F 82.00 73.00 64.00
## AvgLow_F 61.00 52.00 45.00
## AvgPrecip_inch 5.67 4.33 3.74
## DaysWithPrecip 7.00 8.00 9.00
## HoursOfSunshine 229.00 168.00 148.00
##
## $SF
## Jan Feb Mar Apr May Jun Jul Aug Sep
## AvgHigh_F 57.00 60.00 62.00 63.00 64.00 66.00 67 68.00 70.0
## AvgLow_F 46.00 47.00 49.00 49.00 51.00 53.00 54 55.00 55.0
## AvgPrecip_inch 4.49 4.45 3.27 1.46 0.71 0.16 0 0.08 0.2
## DaysWithPrecip 11.00 11.00 10.00 6.00 4.00 2.00 1 1.00 1.0
## HoursOfSunshine 165.00 182.00 251.00 281.00 314.00 330.00 300 272.00 267.0
## Oct Nov Dec
## AvgHigh_F 69.0 63.00 57.00
## AvgLow_F 54.0 50.00 46.00
## AvgPrecip_inch 1.1 3.15 4.57
## DaysWithPrecip 4.0 7.00 10.00
## HoursOfSunshine 243.0 189.00 156.00
#use lapply to calculate difference % between min and max temp for each city
lapply(Weather, function(x) round((x[1,]-x[2,])/x[2,],2))
## $CHI
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 0.78 0.71 0.53 0.44 0.35 0.29 0.24 0.24 0.32 0.37 0.41 0.57
##
## $NY
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 0.50 0.45 0.43 0.36 0.29 0.23 0.21 0.20 0.25 0.30 0.32 0.38
##
## $HOU
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 0.47 0.40 0.38 0.36 0.26 0.23 0.25 0.25 0.29 0.34 0.40 0.42
##
## $SF
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 0.24 0.28 0.27 0.29 0.25 0.25 0.24 0.24 0.27 0.28 0.26 0.24
#return max of each row
apply(CHI,1,max)
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 84.00 68.00 4.13 11.00 318.00
#return max of each row of each matrix
lapply(Weather, apply, 1, max)
## $CHI
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 84.00 68.00 4.13 11.00 318.00
##
## $NY
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 85.00 70.00 4.53 12.00 302.00
##
## $HOU
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 94.00 75.00 5.91 10.00 294.00
##
## $SF
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 70.00 55.00 4.57 11.00 330.00
#same as
lapply(Weather, function(x) apply(x,1,max))
## $CHI
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 84.00 68.00 4.13 11.00 318.00
##
## $NY
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 85.00 70.00 4.53 12.00 302.00
##
## $HOU
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 94.00 75.00 5.91 10.00 294.00
##
## $SF
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## 70.00 55.00 4.57 11.00 330.00
#return max value in first row of CHI
which.max(CHI[1,])
## Jul
## 7
#return name of max value in first row of CHI
names(which.max(CHI[1,]))
## [1] "Jul"
#use apply on CHI matrix
apply(CHI,1,function(x) names(which.max(x)))
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## "Jul" "Jul" "May" "Mar" "Jul"
#use lapply on list Weather
lapply(Weather, function(y) apply(y,1,function(x) names(which.max(x))))
## $CHI
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## "Jul" "Jul" "May" "Mar" "Jul"
##
## $NY
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## "Jul" "Jul" "Jul" "Mar" "Jul"
##
## $HOU
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## "Jul" "Jul" "Jun" "Jun" "Jul"
##
## $SF
## AvgHigh_F AvgLow_F AvgPrecip_inch DaysWithPrecip HoursOfSunshine
## "Sep" "Aug" "Dec" "Jan" "Jun"
#Deliverable 1:
round(sapply(Weather,rowMeans),2)
## CHI NY HOU SF
## AvgHigh_F 59.33 62.33 79.67 63.83
## AvgLow_F 43.25 48.00 60.17 50.75
## AvgPrecip_inch 3.25 3.85 4.13 1.97
## DaysWithPrecip 9.92 10.08 8.25 5.67
## HoursOfSunshine 208.67 223.08 214.50 245.83
#Deliverable 2:
sapply(Weather, function(x) round((x[1,]-x[2,])/x[2,],2))
## CHI NY HOU SF
## Jan 0.78 0.50 0.47 0.24
## Feb 0.71 0.45 0.40 0.28
## Mar 0.53 0.43 0.38 0.27
## Apr 0.44 0.36 0.36 0.29
## May 0.35 0.29 0.26 0.25
## Jun 0.29 0.23 0.23 0.25
## Jul 0.24 0.21 0.25 0.24
## Aug 0.24 0.20 0.25 0.24
## Sep 0.32 0.25 0.29 0.27
## Oct 0.37 0.30 0.34 0.28
## Nov 0.41 0.32 0.40 0.26
## Dec 0.57 0.38 0.42 0.24
#Deliverable 3:
sapply(Weather, apply, 1, max)
## CHI NY HOU SF
## AvgHigh_F 84.00 85.00 94.00 70.00
## AvgLow_F 68.00 70.00 75.00 55.00
## AvgPrecip_inch 4.13 4.53 5.91 4.57
## DaysWithPrecip 11.00 12.00 10.00 11.00
## HoursOfSunshine 318.00 302.00 294.00 330.00
#Deliverable 4:
sapply(Weather, apply, 1, min)
## CHI NY HOU SF
## AvgHigh_F 32.00 39.00 63.00 57
## AvgLow_F 18.00 26.00 43.00 46
## AvgPrecip_inch 1.93 2.95 3.19 0
## DaysWithPrecip 8.00 8.00 6.00 1
## HoursOfSunshine 106.00 154.00 142.00 156
#Deliverable 5:
sapply(Weather, function(y) apply(y,1,function(x) names(which.max(x))))
## CHI NY HOU SF
## AvgHigh_F "Jul" "Jul" "Jul" "Sep"
## AvgLow_F "Jul" "Jul" "Jul" "Aug"
## AvgPrecip_inch "May" "Jul" "Jun" "Dec"
## DaysWithPrecip "Mar" "Mar" "Jun" "Jan"
## HoursOfSunshine "Jul" "Jul" "Jul" "Jun"