R Markdown

Traffic_Crashes_Crashes <- read_csv(
  "C:/Users/mhe29/OneDrive - Drexel University/CJS 310 R Files/Traffic_Crashes_-_Crashes.csv"
)
## Rows: 1030368 Columns: 48
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (31): CRASH_RECORD_ID, CRASH_DATE_EST_I, CRASH_DATE, TRAFFIC_CONTROL_DEV...
## dbl (17): POSTED_SPEED_LIMIT, LANE_CNT, STREET_NO, BEAT_OF_OCCURRENCE, NUM_U...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
names(Traffic_Crashes_Crashes)
##  [1] "CRASH_RECORD_ID"               "CRASH_DATE_EST_I"             
##  [3] "CRASH_DATE"                    "POSTED_SPEED_LIMIT"           
##  [5] "TRAFFIC_CONTROL_DEVICE"        "DEVICE_CONDITION"             
##  [7] "WEATHER_CONDITION"             "LIGHTING_CONDITION"           
##  [9] "FIRST_CRASH_TYPE"              "TRAFFICWAY_TYPE"              
## [11] "LANE_CNT"                      "ALIGNMENT"                    
## [13] "ROADWAY_SURFACE_COND"          "ROAD_DEFECT"                  
## [15] "REPORT_TYPE"                   "CRASH_TYPE"                   
## [17] "INTERSECTION_RELATED_I"        "NOT_RIGHT_OF_WAY_I"           
## [19] "HIT_AND_RUN_I"                 "DAMAGE"                       
## [21] "DATE_POLICE_NOTIFIED"          "PRIM_CONTRIBUTORY_CAUSE"      
## [23] "SEC_CONTRIBUTORY_CAUSE"        "STREET_NO"                    
## [25] "STREET_DIRECTION"              "STREET_NAME"                  
## [27] "BEAT_OF_OCCURRENCE"            "PHOTOS_TAKEN_I"               
## [29] "STATEMENTS_TAKEN_I"            "DOORING_I"                    
## [31] "WORK_ZONE_I"                   "WORK_ZONE_TYPE"               
## [33] "WORKERS_PRESENT_I"             "NUM_UNITS"                    
## [35] "MOST_SEVERE_INJURY"            "INJURIES_TOTAL"               
## [37] "INJURIES_FATAL"                "INJURIES_INCAPACITATING"      
## [39] "INJURIES_NON_INCAPACITATING"   "INJURIES_REPORTED_NOT_EVIDENT"
## [41] "INJURIES_NO_INDICATION"        "INJURIES_UNKNOWN"             
## [43] "CRASH_HOUR"                    "CRASH_DAY_OF_WEEK"            
## [45] "CRASH_MONTH"                   "LATITUDE"                     
## [47] "LONGITUDE"                     "LOCATION"
nrow(Traffic_Crashes_Crashes)
## [1] 1030368
Traffic_Crashes_Crashes%>%
  count(PRIM_CONTRIBUTORY_CAUSE, sort = TRUE)
## # A tibble: 40 × 2
##    PRIM_CONTRIBUTORY_CAUSE                     n
##    <chr>                                   <int>
##  1 UNABLE TO DETERMINE                    405615
##  2 FAILING TO YIELD RIGHT-OF-WAY          114750
##  3 FOLLOWING TOO CLOSELY                   98548
##  4 NOT APPLICABLE                          53330
##  5 IMPROPER OVERTAKING/PASSING             51925
##  6 FAILING TO REDUCE SPEED TO AVOID CRASH  43180
##  7 IMPROPER BACKING                        38795
##  8 IMPROPER LANE USAGE                     36377
##  9 DRIVING SKILLS/KNOWLEDGE/EXPERIENCE     35885
## 10 IMPROPER TURNING/NO SIGNAL              34569
## # ℹ 30 more rows
summary(Traffic_Crashes_Crashes)
##  CRASH_RECORD_ID    CRASH_DATE_EST_I    CRASH_DATE        POSTED_SPEED_LIMIT
##  Length:1030368     Length:1030368     Length:1030368     Min.   : 0.00     
##  Class :character   Class :character   Class :character   1st Qu.:30.00     
##  Mode  :character   Mode  :character   Mode  :character   Median :30.00     
##                                                           Mean   :28.42     
##                                                           3rd Qu.:30.00     
##                                                           Max.   :99.00     
##                                                                             
##  TRAFFIC_CONTROL_DEVICE DEVICE_CONDITION   WEATHER_CONDITION 
##  Length:1030368         Length:1030368     Length:1030368    
##  Class :character       Class :character   Class :character  
##  Mode  :character       Mode  :character   Mode  :character  
##                                                              
##                                                              
##                                                              
##                                                              
##  LIGHTING_CONDITION FIRST_CRASH_TYPE   TRAFFICWAY_TYPE       LANE_CNT        
##  Length:1030368     Length:1030368     Length:1030368     Min.   :0.000e+00  
##  Class :character   Class :character   Class :character   1st Qu.:2.000e+00  
##  Mode  :character   Mode  :character   Mode  :character   Median :2.000e+00  
##                                                           Mean   :1.333e+01  
##                                                           3rd Qu.:4.000e+00  
##                                                           Max.   :1.192e+06  
##                                                           NA's   :831328     
##   ALIGNMENT         ROADWAY_SURFACE_COND ROAD_DEFECT        REPORT_TYPE       
##  Length:1030368     Length:1030368       Length:1030368     Length:1030368    
##  Class :character   Class :character     Class :character   Class :character  
##  Mode  :character   Mode  :character     Mode  :character   Mode  :character  
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##   CRASH_TYPE        INTERSECTION_RELATED_I NOT_RIGHT_OF_WAY_I
##  Length:1030368     Length:1030368         Length:1030368    
##  Class :character   Class :character       Class :character  
##  Mode  :character   Mode  :character       Mode  :character  
##                                                              
##                                                              
##                                                              
##                                                              
##  HIT_AND_RUN_I         DAMAGE          DATE_POLICE_NOTIFIED
##  Length:1030368     Length:1030368     Length:1030368      
##  Class :character   Class :character   Class :character    
##  Mode  :character   Mode  :character   Mode  :character    
##                                                            
##                                                            
##                                                            
##                                                            
##  PRIM_CONTRIBUTORY_CAUSE SEC_CONTRIBUTORY_CAUSE   STREET_NO     
##  Length:1030368          Length:1030368         Min.   :     0  
##  Class :character        Class :character       1st Qu.:  1258  
##  Mode  :character        Mode  :character       Median :  3201  
##                                                 Mean   :  3686  
##                                                 3rd Qu.:  5555  
##                                                 Max.   :451100  
##                                                                 
##  STREET_DIRECTION   STREET_NAME        BEAT_OF_OCCURRENCE PHOTOS_TAKEN_I    
##  Length:1030368     Length:1030368     Min.   : 111       Length:1030368    
##  Class :character   Class :character   1st Qu.: 722       Class :character  
##  Mode  :character   Mode  :character   Median :1213       Mode  :character  
##                                        Mean   :1248                         
##                                        3rd Qu.:1822                         
##                                        Max.   :6100                         
##                                        NA's   :5                            
##  STATEMENTS_TAKEN_I  DOORING_I         WORK_ZONE_I        WORK_ZONE_TYPE    
##  Length:1030368     Length:1030368     Length:1030368     Length:1030368    
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##  WORKERS_PRESENT_I    NUM_UNITS      MOST_SEVERE_INJURY INJURIES_TOTAL   
##  Length:1030368     Min.   : 1.000   Length:1030368     Min.   : 0.0000  
##  Class :character   1st Qu.: 2.000   Class :character   1st Qu.: 0.0000  
##  Mode  :character   Median : 2.000   Mode  :character   Median : 0.0000  
##                     Mean   : 2.035                      Mean   : 0.1981  
##                     3rd Qu.: 2.000                      3rd Qu.: 0.0000  
##                     Max.   :18.000                      Max.   :21.0000  
##                                                         NA's   :2223     
##  INJURIES_FATAL    INJURIES_INCAPACITATING INJURIES_NON_INCAPACITATING
##  Min.   :0.00000   Min.   : 0.00000        Min.   : 0.0000            
##  1st Qu.:0.00000   1st Qu.: 0.00000        1st Qu.: 0.0000            
##  Median :0.00000   Median : 0.00000        Median : 0.0000            
##  Mean   :0.00115   Mean   : 0.01913        Mean   : 0.1098            
##  3rd Qu.:0.00000   3rd Qu.: 0.00000        3rd Qu.: 0.0000            
##  Max.   :4.00000   Max.   :10.00000        Max.   :21.0000            
##  NA's   :2223      NA's   :2223            NA's   :2223               
##  INJURIES_REPORTED_NOT_EVIDENT INJURIES_NO_INDICATION INJURIES_UNKNOWN
##  Min.   : 0.0000               Min.   : 0.000         Min.   :0       
##  1st Qu.: 0.0000               1st Qu.: 1.000         1st Qu.:0       
##  Median : 0.0000               Median : 2.000         Median :0       
##  Mean   : 0.0681               Mean   : 1.996         Mean   :0       
##  3rd Qu.: 0.0000               3rd Qu.: 2.000         3rd Qu.:0       
##  Max.   :19.0000               Max.   :61.000         Max.   :0       
##  NA's   :2223                  NA's   :2223           NA's   :2223    
##    CRASH_HOUR    CRASH_DAY_OF_WEEK  CRASH_MONTH        LATITUDE    
##  Min.   : 0.00   Min.   :1.000     Min.   : 1.000   Min.   : 0.00  
##  1st Qu.: 9.00   1st Qu.:2.000     1st Qu.: 4.000   1st Qu.:41.78  
##  Median :14.00   Median :4.000     Median : 7.000   Median :41.88  
##  Mean   :13.19   Mean   :4.118     Mean   : 6.671   Mean   :41.86  
##  3rd Qu.:17.00   3rd Qu.:6.000     3rd Qu.:10.000   3rd Qu.:41.92  
##  Max.   :23.00   Max.   :7.000     Max.   :12.000   Max.   :42.02  
##                                                     NA's   :7856   
##    LONGITUDE        LOCATION        
##  Min.   :-87.94   Length:1030368    
##  1st Qu.:-87.72   Class :character  
##  Median :-87.67   Mode  :character  
##  Mean   :-87.67                     
##  3rd Qu.:-87.63                     
##  Max.   :  0.00                     
##  NA's   :7856
Traffic_Crashes_Crashes$CRASH_DATE <- 
  mdy_hms(Traffic_Crashes_Crashes$CRASH_DATE)

Traffic_Crashes_Crashes %>%
  mutate(year = year(CRASH_DATE)) %>%
  count(year) %>%
  ggplot(aes(x = year, y = n)) +
  geom_line() +
  geom_point() +
  labs(title = "Number of Traffic Crashes by Year",
       x = "Year",
       y = "Number of Crashes")

This graph shows the total number of crashes occurring each year. It helps us identify trends over time, such as increases, decreases, or stability in crash frequency. If there is a noticeable spike or drop in certain years, it can show enforcement efforts and COVID-related traffic changes. This can help analysis by showing we may need to control for year effects when examining injuries or crash causes.

Traffic_Crashes_Crashes %>%
  count(PRIM_CONTRIBUTORY_CAUSE, sort = TRUE) %>%
  slice_head(n = 10) %>%
  ggplot(aes(x = reorder(PRIM_CONTRIBUTORY_CAUSE, n), y = n)) +
  geom_col() +
  coord_flip() +
  labs(title = "Top 10 Primary Contributory Causes of Crashes",
       x = "Cause",
       y = "Number of Crashes")

This chart shows the most common causes of traffic crashes. It highlights which behaviors are more commonly associated with crashes, such as failure to yield, speeding, or improper lane usage. This visualization helps research by identifying which factors deserve deeper analysis. For example, we may want to examine whether certain causes are more likely to result in injuries or whether they vary by speed limit or location.

Traffic_Crashes_Crashes %>%
  group_by(POSTED_SPEED_LIMIT) %>%
  summarise(avg_injuries = mean(INJURIES_TOTAL, na.rm = TRUE)) %>%
  ggplot(aes(x = POSTED_SPEED_LIMIT, y = avg_injuries)) +
  geom_point() +
  geom_line() +
  labs(title = "Posted Speed Limit vs Average Injuries",
       x = "Posted Speed Limit",
       y = "Average Number of Injuries")

This plot examines the posted speed limits versus the average number of injuries per crash. If the visualization shows an upward trend, it suggests that higher speed limits are associated with more severe crashes. This helps analysis by showing that speed may be an important predictor variable in regression models examining crash severity.