install.packages(c(tidyverse, sf, tmap, spatstat, maptools, ggplot2, sqldf)) install.packages(“spatstat.geom”, dependencies = TRUE) install.packages(“leaflet.providers”) install.packages(“markdown”, dependencies = TRUE) install.packages(“polyclip”, dependencies = TRUE) install.packages(“ggmap”, dependencies = TRUE)
library(tidyverse)
library(sf)
library(tmap)
library(spatstat)
library(maptools)
library(sqldf)
library(ggplot2)
library(spatstat.geom)
library(leaflet.providers)
library(markdown)
library(polyclip)
library(ggmap)
# Environment (folder where Chicago Taxi data is stored)
setwd("D:/GaTech/Academic/Fall 2021/Urban Analytics/Final Project")
## We downloaded the data from here: https://data.cityofchicago.org/Transportation/Taxi-Trips/wrvz-psew
## Some code taken from: http://lab.rady.ucsd.edu/sawtooth/business_analytics_in_r/maps.html
## Thanks to Prof. Clio Andris for her teachings and help.
# Read data
TT2019 <- read.csv("Taxi_Trips_-_2019.csv")
TT2020 <- read.csv("Taxi_Trips_-_2020.csv")
# Extract month from Timestamp
TT2019month <-TT2019%>%
mutate(month = substring(TT2019$Trip.Start.Timestamp, 1,2))
TT2020month <-TT2020%>%
mutate(month = substring(TT2020$Trip.Start.Timestamp, 1,2))
# Aggregate months
tripsBymonth2019 <- TT2019month %>%
group_by(Pickup.Community.Area, month) %>%
summarise(trips=n())
tripsBymonth2020 <- TT2020month %>%
group_by(Pickup.Community.Area, month) %>%
summarise(trips=n())
library(reshape2)
TripByCommunityAreaAndMonth2019 <- dcast(unique(tripsBymonth2019), Pickup.Community.Area ~ month, value.var="trips")
TripByCommunityAreaAndMonth2020 <- dcast(unique(tripsBymonth2020), Pickup.Community.Area ~ month, value.var="trips")
# Merge two years to find difference
fulldata <- merge(TripByCommunityAreaAndMonth2019, TripByCommunityAreaAndMonth2020, by.x = "Pickup.Community.Area",
by.y = "Pickup.Community.Area",
suffixes = c("y2019","y2020"))
# Format Table
res <- fulldata[, grepl("y2019", colnames(fulldata))] - fulldata[, grepl("y2020", colnames(fulldata))]
colnames(res) <- paste(colnames(fulldata[, grepl("y2019", colnames(fulldata))]),
colnames(fulldata[, grepl("y2020", colnames(fulldata))]), sep = "_")
Final <- cbind(fulldata,res)
write.csv(Final,"D:/GaTech/Academic/Fall 2021/Urban Analytics/Final Project/Final.csv")
#We performed spatial joins on GIS to find interrelationships with CTA railway stations and Community area wise Hardship indices.
#We converted presence or absence of CTA railway station in a community area into a binary field.
#Similarly we bifurcated Hardship indices that range from 0 to 100 into a binary assigning 0 for under 50 and 1 for over and equal to 50.
Final_Table <- read.csv("Hardship_Index.csv")
Final_Table$Nomalisedapril <- Final_Table[,c(30)]/Final_Table[,c(6)]
# Anoval Test for Presence of Public transport (for April)
one.way <- aov(Final_Table[,c(60)] ~ Final_Table[,c(42)], data = Final_Table)
summary(one.way)
# Anoval Test for Hardship Index (for April)
one.way <- aov(Final_Table[,c(60)] ~ Final_Table[,c(43)], data = Final_Table)
summary(one.way)
LS0tDQp0aXRsZTogIkZpbmFsIFByb2plY3QsIERpc2hhZGRyYSBhbmQgQWlzaHdhcnlhIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQojUmVzZWFyY2ggUXVlc3Rpb24gLSBEb2VzIGNoYW5nZSBpbiBUYXhpIHJpZGVyc2hpcCBpbiBDaGljYWdvIGZyb20gMjAxOSAocHJlIGxvY2tkb3duKSB0byAyMDIwIChkdXJpbmcgbG9ja2Rvd24pIGhlbHAgaW5mZXIgcmVnaW9uYWwgKGNvbW11bml0eSBhcmVhKSBoYXJkc2hpcCBpbmRpY2VzIGFuZCBhcyBhIHJlc3VsdCBVbmVtcGxveW1lbnQsIFBvdmVydHksIFBlciBjYXBpdGEgaW5jb21lIGFuZCBzbyBvbi4gV2UgYWxzbyB0ZXN0IHRoZSBkZXBlbmRlbmN5L2F2YWlsYWJpbGl0eSBvZiBwdWJsaWMgdHJhbnNwb3J0IGFzIGEgZmFjdG9yIHRvIHRoZSBjaGFuZ2UgaW4gVGF4aSByaWRlcnNoaXA/ICAgDQotLS0NCmluc3RhbGwucGFja2FnZXMoYyh0aWR5dmVyc2UsIHNmLCB0bWFwLCBzcGF0c3RhdCwgbWFwdG9vbHMsIGdncGxvdDIsIHNxbGRmKSkNCmluc3RhbGwucGFja2FnZXMoInNwYXRzdGF0Lmdlb20iLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KaW5zdGFsbC5wYWNrYWdlcygibGVhZmxldC5wcm92aWRlcnMiKQ0KaW5zdGFsbC5wYWNrYWdlcygibWFya2Rvd24iLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KaW5zdGFsbC5wYWNrYWdlcygicG9seWNsaXAiLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KaW5zdGFsbC5wYWNrYWdlcygiZ2dtYXAiLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KDQpgYGB7cn0NCg0KDQpsaWJyYXJ5KHRpZHl2ZXJzZSkgDQpsaWJyYXJ5KHNmKQ0KbGlicmFyeSh0bWFwKQ0KbGlicmFyeShzcGF0c3RhdCkNCmxpYnJhcnkobWFwdG9vbHMpDQpsaWJyYXJ5KHNxbGRmKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShzcGF0c3RhdC5nZW9tKQ0KbGlicmFyeShsZWFmbGV0LnByb3ZpZGVycykNCmxpYnJhcnkobWFya2Rvd24pDQpsaWJyYXJ5KHBvbHljbGlwKQ0KbGlicmFyeShnZ21hcCkNCg0KIyBFbnZpcm9ubWVudCAoZm9sZGVyIHdoZXJlIENoaWNhZ28gVGF4aSBkYXRhIGlzIHN0b3JlZCkNCnNldHdkKCJEOi9HYVRlY2gvQWNhZGVtaWMvRmFsbCAyMDIxL1VyYmFuIEFuYWx5dGljcy9GaW5hbCBQcm9qZWN0IikNCg0KDQpgYGANCmBgYHtyfQ0KDQojIyBXZSBkb3dubG9hZGVkIHRoZSBkYXRhIGZyb20gaGVyZTogaHR0cHM6Ly9kYXRhLmNpdHlvZmNoaWNhZ28ub3JnL1RyYW5zcG9ydGF0aW9uL1RheGktVHJpcHMvd3J2ei1wc2V3DQojIyBTb21lIGNvZGUgdGFrZW4gZnJvbTogaHR0cDovL2xhYi5yYWR5LnVjc2QuZWR1L3Nhd3Rvb3RoL2J1c2luZXNzX2FuYWx5dGljc19pbl9yL21hcHMuaHRtbA0KIyMgVGhhbmtzIHRvIFByb2YuIENsaW8gQW5kcmlzIGZvciBoZXIgdGVhY2hpbmdzIGFuZCBoZWxwLg0KYGBgDQpgYGB7cn0NCiMgUmVhZCBkYXRhDQoNClRUMjAxOSA8LSByZWFkLmNzdigiVGF4aV9Ucmlwc18tXzIwMTkuY3N2IikNCg0KDQpUVDIwMjAgPC0gcmVhZC5jc3YoIlRheGlfVHJpcHNfLV8yMDIwLmNzdiIpDQpgYGANCmBgYHtyfQ0KIyBFeHRyYWN0IG1vbnRoIGZyb20gVGltZXN0YW1wIA0KDQpUVDIwMTltb250aCA8LVRUMjAxOSU+JQ0KIG11dGF0ZShtb250aCA9IHN1YnN0cmluZyhUVDIwMTkkVHJpcC5TdGFydC5UaW1lc3RhbXAsIDEsMikpDQoNCg0KDQpUVDIwMjBtb250aCA8LVRUMjAyMCU+JQ0KIG11dGF0ZShtb250aCA9IHN1YnN0cmluZyhUVDIwMjAkVHJpcC5TdGFydC5UaW1lc3RhbXAsIDEsMikpDQoNCmBgYA0KYGBge3J9DQojIEFnZ3JlZ2F0ZSBtb250aHMNCg0KdHJpcHNCeW1vbnRoMjAxOSA8LSBUVDIwMTltb250aCAgJT4lDQogIGdyb3VwX2J5KFBpY2t1cC5Db21tdW5pdHkuQXJlYSwgbW9udGgpICU+JQ0KICBzdW1tYXJpc2UodHJpcHM9bigpKQ0KIA0KdHJpcHNCeW1vbnRoMjAyMCA8LSBUVDIwMjBtb250aCAgJT4lDQogIGdyb3VwX2J5KFBpY2t1cC5Db21tdW5pdHkuQXJlYSwgbW9udGgpICU+JQ0KICBzdW1tYXJpc2UodHJpcHM9bigpKQ0KDQpsaWJyYXJ5KHJlc2hhcGUyKQ0KVHJpcEJ5Q29tbXVuaXR5QXJlYUFuZE1vbnRoMjAxOSA8LSBkY2FzdCh1bmlxdWUodHJpcHNCeW1vbnRoMjAxOSksIFBpY2t1cC5Db21tdW5pdHkuQXJlYSB+IG1vbnRoLCB2YWx1ZS52YXI9InRyaXBzIikNClRyaXBCeUNvbW11bml0eUFyZWFBbmRNb250aDIwMjAgPC0gZGNhc3QodW5pcXVlKHRyaXBzQnltb250aDIwMjApLCBQaWNrdXAuQ29tbXVuaXR5LkFyZWEgfiBtb250aCwgdmFsdWUudmFyPSJ0cmlwcyIpDQoNCmBgYA0KYGBge3J9DQojIE1lcmdlIHR3byB5ZWFycyB0byBmaW5kIGRpZmZlcmVuY2UNCg0KDQpmdWxsZGF0YSA8LSBtZXJnZShUcmlwQnlDb21tdW5pdHlBcmVhQW5kTW9udGgyMDE5LCBUcmlwQnlDb21tdW5pdHlBcmVhQW5kTW9udGgyMDIwLCBieS54ID0gIlBpY2t1cC5Db21tdW5pdHkuQXJlYSIsDQogICAgICAgICAgICAgICAgICAgYnkueSA9ICJQaWNrdXAuQ29tbXVuaXR5LkFyZWEiLA0KICAgICAgICAgICAgICAgICAgIHN1ZmZpeGVzID0gYygieTIwMTkiLCJ5MjAyMCIpKQ0KDQpgYGANCmBgYHtyfQ0KIyBGb3JtYXQgVGFibGUNCg0KcmVzIDwtIGZ1bGxkYXRhWywgZ3JlcGwoInkyMDE5IiwgY29sbmFtZXMoZnVsbGRhdGEpKV0gLSBmdWxsZGF0YVssIGdyZXBsKCJ5MjAyMCIsIGNvbG5hbWVzKGZ1bGxkYXRhKSldDQoNCmNvbG5hbWVzKHJlcykgPC0gcGFzdGUoY29sbmFtZXMoZnVsbGRhdGFbLCBncmVwbCgieTIwMTkiLCBjb2xuYW1lcyhmdWxsZGF0YSkpXSksDQogICAgICAgICAgICAgICAgICAgICAgIGNvbG5hbWVzKGZ1bGxkYXRhWywgZ3JlcGwoInkyMDIwIiwgY29sbmFtZXMoZnVsbGRhdGEpKV0pLCBzZXAgPSAiXyIpDQoNCkZpbmFsIDwtIGNiaW5kKGZ1bGxkYXRhLHJlcykNCg0Kd3JpdGUuY3N2KEZpbmFsLCJEOi9HYVRlY2gvQWNhZGVtaWMvRmFsbCAyMDIxL1VyYmFuIEFuYWx5dGljcy9GaW5hbCBQcm9qZWN0L0ZpbmFsLmNzdiIpDQoNCiNXZSBwZXJmb3JtZWQgc3BhdGlhbCBqb2lucyBvbiBHSVMgdG8gZmluZCBpbnRlcnJlbGF0aW9uc2hpcHMgd2l0aCBDVEEgcmFpbHdheSBzdGF0aW9ucyBhbmQgQ29tbXVuaXR5IGFyZWEgd2lzZSBIYXJkc2hpcCBpbmRpY2VzLg0KI1dlIGNvbnZlcnRlZCBwcmVzZW5jZSBvciBhYnNlbmNlIG9mIENUQSByYWlsd2F5IHN0YXRpb24gaW4gYSBjb21tdW5pdHkgYXJlYSBpbnRvIGEgYmluYXJ5IGZpZWxkLg0KI1NpbWlsYXJseSB3ZSBiaWZ1cmNhdGVkIEhhcmRzaGlwIGluZGljZXMgdGhhdCByYW5nZSBmcm9tIDAgdG8gMTAwIGludG8gYSBiaW5hcnkgYXNzaWduaW5nIDAgZm9yIHVuZGVyIDUwIGFuZCAxIGZvciBvdmVyIGFuZCBlcXVhbCB0byA1MC4NCg0KYGBgDQpgYGB7cn0NCkZpbmFsX1RhYmxlIDwtIHJlYWQuY3N2KCJIYXJkc2hpcF9JbmRleC5jc3YiKQ0KRmluYWxfVGFibGUkTm9tYWxpc2VkYXByaWwgPC0gRmluYWxfVGFibGVbLGMoMzApXS9GaW5hbF9UYWJsZVssYyg2KV0NCmBgYA0KYGBge3J9DQojIEFub3ZhbCBUZXN0IGZvciBQcmVzZW5jZSBvZiBQdWJsaWMgdHJhbnNwb3J0IChmb3IgQXByaWwpDQoNCm9uZS53YXkgPC0gYW92KEZpbmFsX1RhYmxlWyxjKDYwKV0gfiBGaW5hbF9UYWJsZVssYyg0MildLCBkYXRhID0gRmluYWxfVGFibGUpDQoNCnN1bW1hcnkob25lLndheSkNCg0KYGBgDQpgYGB7cn0NCiMgQW5vdmFsIFRlc3QgZm9yIEhhcmRzaGlwIEluZGV4IChmb3IgQXByaWwpDQoNCg0KDQpvbmUud2F5IDwtIGFvdihGaW5hbF9UYWJsZVssYyg2MCldIH4gRmluYWxfVGFibGVbLGMoNDMpXSwgZGF0YSA9IEZpbmFsX1RhYmxlKQ0KDQpzdW1tYXJ5KG9uZS53YXkpDQoNCmBgYA0K