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