
## Q1

setwd("C:/Users/fc/Desktop/fcR")
library(readxl)
library(ggplot2)
library(dplyr)
#Read data
climateData_Swansea <- read_xlsx("climate.xlsx",1)
climateData_Wuhan <- read_xlsx("climate.xlsx",2)
#Combine data from two cities
climateData <- rbind(climateData_Swansea,climateData_Wuhan)
city <- c("Swansea","Swansea","Swansea","Swansea","Swansea","Swansea","Swansea","Wuhan","Wuhan","Wuhan","Wuhan","Wuhan","Wuhan","Wuhan")
#Add city variable
climateData <- cbind(city,climateData)
climateData[14,2] <- "Avg. Sun hours (hours)"
climateData


## Q2

#Swansea accumulated rainfall
Swansea_RF <- sum(climateData_Swansea[4,2:13])
#Swansea accumulated sunshine hours
Swansea_SH <- sum((climateData_Swansea[7,2:13]*30))

#Wuhan accumulated rainfall
Wuhan_RF <- sum(climateData_Wuhan[4,2:13])
#Wuhan accumulated sunshine hours
Wuhan_SH <- sum((climateData_Wuhan[7,2:13]*30))

city <- c("Swansea","Wuhan")
Rainfall <- c(Swansea_RF,Wuhan_RF)
SunHours <- c(Swansea_SH,Wuhan_SH)
cumulativeData <- data.frame(city,Rainfall,SunHours)
cumulativeData


## Q3

colnames(climateData)[2] <- "index"

displayGraph <- function(mycity,myindex,na.omit=FALSE){
  data1 <- climateData[climateData$city==mycity&climateData$index==myindex,3:14]
  data1
  plot(1:12,as.numeric(data1),type = "o",xlab = "month",ylab = myindex,main=mycity)
}

#Wuhan humidity line chart
displayGraph("Wuhan","Humidity(%)")
#Swansea Rainfall
displayGraph("Swansea","Precipitation / Rainfall mm")


## Q4

library(pacman)
library(reshape2)
p_load(patchwork)

compareCities <- function(start,end,index1,index2){
  reg1 <- climateData[climateData$index==index1|climateData$index==index2,c(1:2,(start+2):(end+2))]
  reg2 <- melt(reg1)
  #draw   index1
  reg3 <- reg2[reg2$index==index1,]
  if(index1=="Avg. Temperature ˇăC"|index1=="Humidity(%)")
  {  
    p1 <- ggplot(reg3,aes(x=variable,y=value,color=city,group=city))+  
      geom_point()+
      geom_line()+
      labs(
        x="month",
        y= index1,
      )
  }
  else
  {
    p2 <- ggplot(reg3,aes(x=variable,y=value,fill=city))+
      geom_col(position = "identity",alpha=0.5)+
      labs(
        x="month",
        y= index1,
      )
  }
  
  reg4 <-  reg2[reg2$index==index2,]
  if(index2=="Avg. Temperature ˇăC"|index2=="Humidity(%)")
  {
    p2 <- ggplot(reg4,aes(x=variable,y=value,color=city,group=city))+  
      geom_point()+
      geom_line()+
      labs(
        x="month",
        y= index2,
      )
  }
  else
  {
    p2 <- ggplot(reg4,aes(x=variable,y=value,fill=city))+
      geom_col(position = "identity",alpha=0.5)+
      labs(
        x="month",
        y= index2,
      )
  }
  p1/p2
}

compareCities(1,12,"Avg. Temperature ˇăC","Avg. Sun hours (hours)")

