Function for season

#########season function
Season <- function(data2) {
  d<- as.Date(strptime(data2$Start.Date,format="%d/%m/%Y %H:%M",tz="UTC"))
  WS <- as.Date("21/12/2016", format = "%d/%m/%Y") # Winter 
  SE <- as.Date("20/3/2016",  format = "%d/%m/%Y") # Spring 
  SS <- as.Date("21/6/2016",  format = "%d/%m/%Y") # Summer 
  FE <- as.Date("22/9/2016",  format = "%d/%m/%Y") # Fall
  
  ifelse (d >= WS | d < SE, "Winter",
          ifelse (d >= SE & d < SS, "Spring",
                  ifelse (d >= SS & d < FE, "Summer", "Fall")))
}

Function to get data manipulated

seasonweekdata<- function(data1,coordinates=coor){
  data1<-data1 %>% select("StartStation.Id","EndStation.Id","Start.Date")

  ###merge coordinate
  #########################################################################
  a<- coor
  colnames(a)<- c("StartStation.Id","s.lat","s.lon")
  x<-join(data1,a)
  aa<- coor
  colnames(aa)<- c("EndStation.Id","e.lat","e.lon")
  #a<-setnames(coor,old=c("id","lat","long"),new=c("EndStation.Id","e.lat","e.lon"))
  #aa<-setnames(coor,old=c("id","lat","long"),new=c("StartStation.Id","s.lat","s.lon"))
  z<-join(x,aa)
  z<- na.omit(z)
  x<- count(z,vars = c("StartStation.Id","EndStation.Id"))
  data1<- join(z,x)
  #################weekdays############################################################
  data1$weekdays<-weekdays(
    strptime(data1$Start.Date,format="%d/%m/%Y %H:%M",tz="UTC")
  )
  data1$season<-Season(data2=data1)

  ########################################seasons
  return(data1)
  ##########same start and end stations #########################################
  #attach(bikedata)
  # bikedata$samestation<- rep(0,nrow(bikedata))
  #head(bikedata)
  #bikedata$samestation[which((StartStation.Id==EndStation.Id))]<- bikedata$freq[which((StartStation.Id==EndStation.Id))]
  str(data1)
  
}

Function for plots

fullplot<- function(data,time = "Autumn", source="google",maptype="roadmap",zoom=11
                    ){
  attach(data)
  
  map<- get_map(location = c(lon = mean(s.lon),lat = mean(s.lat)),
                source=source,maptype=maptype,zoom = zoom)
  
  plot<-ggmap(map)+
    geom_segment(data=data[season=="Autumn",],aes(x=s.lon,y=s.lat,xend=e.lon, yend=e.lat,alpha=freq),
                 colour= "black",size=0.00001)+
    scale_alpha_continuous(range = c(0, 0.01))+
    ggtitle("2017 Autumn bicycle trips")+
    geom_point(data=data,aes(x=s.lon,y=s.lat),size=0.001,alpha=0.3)
  
  
  plot1<-ggmap(map)+
    geom_segment(data=data[season=="Summer",],aes(x=s.lon,y=s.lat,xend=e.lon, yend=e.lat,alpha=freq),
                 colour= "black",size=0.00001)+
    scale_alpha_continuous(range = c(0, 0.01))+
    ggtitle("2017 Summer bicycle trips")+
    geom_point(data=data,aes(x=s.lon,y=s.lat),size=0.001,alpha=0.3)
  
  plot2<- ggmap(map)+
    geom_segment(data=data[season=="Winter",],aes(x=s.lon,y=s.lat,xend=e.lon, yend=e.lat,alpha=freq),
                 colour= "black",size=0.00001)+
    scale_alpha_continuous(range = c(0, 0.01))+
    ggtitle("2017 Winter bicycle trips")+
    geom_point(data=data,aes(x=s.lon,y=s.lat),size=0.001,alpha=0.3)
  
  plot3<- ggmap(map)+
    geom_segment(data=data[season=="Spring",],aes(x=s.lon,y=s.lat,xend=e.lon, yend=e.lat,alpha=freq),
                 colour= "black",size=0.00001)+
    scale_alpha_continuous(range = c(0, 0.01))+
    ggtitle("2017 Spring bicycle trips")+
    geom_point(data=data,aes(x=s.lon,y=s.lat),size=0.001,alpha=0.3)
  
  if (time == "Autumn"){
    return(plot)
  }
  
  if (time == "Summer"){
    return(plot1)
  }
  if (time == "Winter"){
    return(plot2)
  }
  if (time == "Spring"){
    return(plot3)
  }
  
  
  #return(list(
   # plot,plot1,plot2,plot3))
}
fullplot(data=seasonweekdata(data1 = bikedata),zoom = 11,time = "Autumn")
## Joining by: StartStation.Id
## Joining by: EndStation.Id
## Joining by: StartStation.Id, EndStation.Id
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=51.508243,-0.127856&zoom=11&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false

#fullplot(data=seasonweekdata(data1=bikedata),type = "weekdays")
#fullplot(data=seasonweekdata(data1=bikedata),type = "season")
fullplot(data=seasonweekdata(data1 = bikedata),zoom = 11,time = "Summer")
## Joining by: StartStation.Id
## Joining by: EndStation.Id
## Joining by: StartStation.Id, EndStation.Id
## The following objects are masked from data (pos = 3):
## 
##     e.lat, e.lon, EndStation.Id, freq, s.lat, s.lon, season,
##     Start.Date, StartStation.Id, weekdays
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=51.508243,-0.127856&zoom=11&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false
## Warning: Removed 29 rows containing missing values (geom_segment).

fullplot(data=seasonweekdata(data1 = bikedata),zoom = 11,time = "winter")
## Joining by: StartStation.Id
## Joining by: EndStation.Id
## Joining by: StartStation.Id, EndStation.Id
## The following objects are masked from data (pos = 3):
## 
##     e.lat, e.lon, EndStation.Id, freq, s.lat, s.lon, season,
##     Start.Date, StartStation.Id, weekdays
## The following objects are masked from data (pos = 4):
## 
##     e.lat, e.lon, EndStation.Id, freq, s.lat, s.lon, season,
##     Start.Date, StartStation.Id, weekdays
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=51.508243,-0.127856&zoom=11&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false
fullplot(data=seasonweekdata(data1 = bikedata),zoom = 11,time = "Spring")
## Joining by: StartStation.Id
## Joining by: EndStation.Id
## Joining by: StartStation.Id, EndStation.Id
## The following objects are masked from data (pos = 3):
## 
##     e.lat, e.lon, EndStation.Id, freq, s.lat, s.lon, season,
##     Start.Date, StartStation.Id, weekdays
## The following objects are masked from data (pos = 4):
## 
##     e.lat, e.lon, EndStation.Id, freq, s.lat, s.lon, season,
##     Start.Date, StartStation.Id, weekdays
## The following objects are masked from data (pos = 5):
## 
##     e.lat, e.lon, EndStation.Id, freq, s.lat, s.lon, season,
##     Start.Date, StartStation.Id, weekdays
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=51.508243,-0.127856&zoom=11&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false
## Warning: Removed 29 rows containing missing values (geom_segment).