library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
NYCFire = read.csv("~/Downloads/ideone_0oMTR2.py", sep='\t', stringsAsFactors=FALSE)
NYCFire$AlarmDateTime <- strptime(NYCFire$AlarmDateTime, format = '%m/%d/%Y %I:%M:%OS %p')
NYCFire$ArrivalDateTime <- strptime(NYCFire$ArrivalDateTime, format = '%m/%d/%Y %I:%M:%OS %p')
NYCFire$ResponseTime <- as.double(NYCFire$ArrivalDateTime - NYCFire$AlarmDateTime, units="secs")
NYCFire$Day <- weekdays(NYCFire$ArrivalDateTime)
NYCFire$Hour <- NYCFire$ArrivalDateTime$hour
NYCFire$Day <- factor(NYCFire$Day, ordered = TRUE,
levels = c('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'))
print(NYCFire)
## AlarmDateTime ArrivalDateTime ResponseTime Day Hour
## 1 <NA> <NA> NA <NA> NA
## 2 <NA> <NA> NA <NA> NA
## 3 <NA> <NA> NA <NA> NA
## 4 <NA> <NA> NA <NA> NA
## 5 <NA> <NA> NA <NA> NA
## 6 2013-10-10 10:00:00 2013-10-10 10:05:00 300.000 Thursday 10
## 7 <NA> <NA> NA <NA> NA
## 8 2014-02-19 14:39:54 2014-02-19 14:40:00 6.000 Wednesday 14
## 9 2014-02-20 11:14:33 2014-02-20 11:29:48 914.490 Thursday 11
## 10 2014-02-20 11:10:52 2014-02-20 11:17:07 374.317 Thursday 11
## 11 2014-02-20 11:27:12 2014-02-20 11:36:04 531.904 Thursday 11
## 12 2014-02-20 11:39:23 <NA> NA <NA> NA
## 13 2014-02-20 11:30:16 2014-02-20 11:32:51 154.426 Thursday 11
## 14 2014-02-20 11:25:40 2014-02-20 11:28:08 147.577 Thursday 11
## 15 2014-02-20 11:03:27 2014-02-20 11:06:59 211.603 Thursday 11
## 16 2014-02-20 11:12:56 2014-02-20 11:18:32 336.040 Thursday 11
## 17 2014-02-20 10:58:05 2014-02-20 11:03:58 353.500 Thursday 11
NYCFire %>%
select(Day, Hour, ResponseTime) %>%
filter(!is.na(ResponseTime)) %>%
group_by(Day, Hour) %>%
summarize(mean_response_time=mean(ResponseTime), frequency=n())
## Source: local data frame [3 x 4]
## Groups: Day [?]
##
## Day Hour mean_response_time frequency
## (fctr) (int) (dbl) (int)
## 1 Wednesday 14 6.0000 1
## 2 Thursday 10 300.0000 1
## 3 Thursday 11 377.9821 8