This is my final project to demonstrate knowledge gained during 3 day R Bootcamp. We will be pulling from the Police Incident Report.
Initial setup and Data pull
Here we load the necessary libraries and get main data.
Data Table Example
Top 10 offense descriptions in 2018
In this section, I will use DT library for easy data exploration. First, I need to clean my main data and create subset to display using DT. Count of police case numbers will be taken as valid number of incidents. However, I will add additional column for unique number of incident.
Leaflet Map Example
Leaflet Map with Incidents in 2018 plotted by latitude and longitude
In this section, html widget Leaflet library is used to plot police incidents occured in 2018 by latitude and longitude
Top 25 Offenses in 2018
Bar chart example to plot top 25 offenses in 2018 by count
In this section we demonstrate not only data manipulation including top_n, but useful Addin available in RStudio ‘ggplot builder’ Ggplot builder is part of Esquisse package

LS0tCnRpdGxlOiAiRGF5IDMgRmluYWwgLSBWQiBQb2xpY2UgSW5jaWRlbnRzIEFuYWx5c2lzIgphdXRob3I6ICJNaWNoYWVsIEdvZHdpbiIKZGF0ZTogSnVseSAyMSwgMjAxOQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpUaGlzIGlzIG15IGZpbmFsIHByb2plY3QgdG8gZGVtb25zdHJhdGUga25vd2xlZGdlIGdhaW5lZCBkdXJpbmcgMyBkYXkgUiBCb290Y2FtcC4gV2Ugd2lsbCBiZSBwdWxsaW5nIGZyb20gdGhlIFBvbGljZSBJbmNpZGVudCBSZXBvcnQuCgoKCiMgSW5pdGlhbCBzZXR1cCBhbmQgRGF0YSBwdWxsCgpIZXJlIHdlIGxvYWQgdGhlIG5lY2Vzc2FyeSBsaWJyYXJpZXMgYW5kIGdldCBtYWluIGRhdGEuCgpgYGB7ciBzZXR1cCwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0KIyMjCmxpYnJhcnkocmVhZHIpICMgcmVhZCBjc3YKbGlicmFyeShkcGx5cikgIyBkYXRhIG1hbmlwdWxhdGlvbgpsaWJyYXJ5KGx1YnJpZGF0ZSkgIyBoZWxwIHdpdGggZGF0ZXMKbGlicmFyeShzdHJpbmdyKSAjIGhlbHAgd2l0aCBzdHJpbmdzCmxpYnJhcnkoanNvbmxpdGUpICMgcmVhZCBqc29uIGZpbGUKbGlicmFyeShjdXJsKSAjIGhlbHBzIHdpdGggdXJscwpsaWJyYXJ5KGxlYWZsZXQpICMgaHRtbCBtYXAKbGlicmFyeShEVCkgIyBodG1sIGRhdGEgdGFibGUKbGlicmFyeShnZ3Bsb3QyKSAjIGRhdGEgdmlzdWFsaXphdGlvbgpsaWJyYXJ5KHRpZHlyKSAjIFNlcGFyYXRpbmcgY29sdW1ucwoKCiMgUHVsbGluZyBtYWluIGRhdGEgZnJvbSBkYXRhLnZiZ292LmNvbSBQb2xpY2UgSW5jaWRlbnQgUmVwb3J0Cgpwb2xpY2VfaW5jaWRlbnRzX21haW5fZGYgPC0ganNvbmxpdGU6OmZyb21KU09OKCdodHRwczovL2RhdGEudmJnb3YuY29tL3Jlc291cmNlL3IzN3QtdHQ2NC5qc29uPyRsaW1pdD0xMDAwMCcsIGZsYXR0ZW4gPSBUUlVFKQoKCmBgYAoKCgojIERhdGEgVGFibGUgRXhhbXBsZQojIyBUb3AgMTAgb2ZmZW5zZSBkZXNjcmlwdGlvbnMgaW4gMjAxOAoKSW4gdGhpcyBzZWN0aW9uLCBJIHdpbGwgdXNlIERUIGxpYnJhcnkgZm9yIGVhc3kgZGF0YSBleHBsb3JhdGlvbi4KRmlyc3QsIEkgbmVlZCB0byBjbGVhbiBteSBtYWluIGRhdGEgYW5kIGNyZWF0ZSBzdWJzZXQgdG8gZGlzcGxheSB1c2luZyBEVC4gQ291bnQgb2YgcG9saWNlIGNhc2UgbnVtYmVycyB3aWxsIGJlIHRha2VuIGFzIHZhbGlkIG51bWJlciBvZiBpbmNpZGVudHMuIEhvd2V2ZXIsIEkgd2lsbCBhZGQgYWRkaXRpb25hbCBjb2x1bW4gZm9yIHVuaXF1ZSBudW1iZXIgb2YgaW5jaWRlbnQuCgpgYGB7ciBkdF9leGFtcGxlLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgZWNobz1GQUxTRX0KCiMgQ2xlYW5pbmcgdGhlIGRhdGE6CgoKeWVhcjJyZXBvcnQgPC0gMjAxOAoKCnRvcF9uX29mZmVuc2VzIDwtIHBvbGljZV9pbmNpZGVudHNfbWFpbl9kZiAlPiUgCiAgZHBseXI6OmZpbHRlcihzdHJfc3ViKGRhdGVfb2NjdXJlZCwgMSwgNCkgPT0geWVhcjJyZXBvcnQpICU+JQogIGRwbHlyOjpncm91cF9ieShvZmZlbnNlX2Rlc2NyaXB0aW9uKSAlPiUKICBkcGx5cjo6c3VtbWFyaXNlICggbm9fb2ZfaW5jaWRlbnRzID1uKCksCiAgICAgICAgICAgICAgICAgICAgIG5vX29mX3VuaXF1ZV9pbmNpZGVudHMgPSBuX2Rpc3RpbmN0KHBvbGljZV9jYXNlX251bWJlciwgbmEucm0gPSBUUlVFKSkgJT4lCiAgZHBseXI6OnRvcF9uKDEwLCBub19vZl91bmlxdWVfaW5jaWRlbnRzKSAlPiUgZHBseXI6OmFycmFuZ2UoZGVzYyhub19vZl91bmlxdWVfaW5jaWRlbnRzKSkKICAKICAKRFQ6OmRhdGF0YWJsZSgKICB0b3Bfbl9vZmZlbnNlcywgZXh0ZW5zaW9ucyA9ICdCdXR0b25zJywgb3B0aW9ucyA9IGxpc3QoCiAgICBkb20gPSAnQmZydGlwJywKICAgIGJ1dHRvbnMgPSBjKCdjb3B5JywgJ2NzdicsICdleGNlbCcsICdwZGYnLCAncHJpbnQnKQogICkKKQoKCgpgYGAKCgoKIyBMZWFmbGV0IE1hcCBFeGFtcGxlCiMjIExlYWZsZXQgTWFwIHdpdGggSW5jaWRlbnRzIGluIDIwMTggcGxvdHRlZCBieSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlCgpJbiB0aGlzIHNlY3Rpb24sIGh0bWwgd2lkZ2V0IExlYWZsZXQgbGlicmFyeSBpcyB1c2VkIHRvIHBsb3QgcG9saWNlIGluY2lkZW50cyBvY2N1cmVkIGluIDIwMTggYnkgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZQoKYGBge3IgTGVhZmxldCBFeGFtcGxlLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgZWNobz1GQUxTRX0KCiMgVXNlIExlYWZsZXQgdG8gcGxvdCBwb2xpY2UgaW5jaWRlbnRzIGJ5IGxhdGl0dWRlIGFuZCBsb25naXR1ZGU6CgojIyBGaXJzdCwgSSBuZWVkIHRvIHB1bGwgZnJvbSB0aGUgcG9saWNlX2luY2lkZW50c19tYWluX2RmOiBMb2NhdGlvbiBhbmQgaW5jaWRlbnRzIGZyb20gMjAxOAoKcG9saWNlX2luY2lkZW50c18yMDE4IDwtIHBvbGljZV9pbmNpZGVudHNfbWFpbl9kZiAlPiUKICBkcGx5cjo6c2VsZWN0KGxvY2F0aW9uID0gJ2xvY2F0aW9uXzEuY29vcmRpbmF0ZXMnLCBkYXRlID0gJ2RhdGVfb2NjdXJlZCcpICU+JQogIGRwbHlyOjpmaWx0ZXIobHVicmlkYXRlOjp5ZWFyKGRhdGUpPT0yMDE4KQoKIyMjIE5vdywgSSB3aWxsIHBsb3QgdXNpbmcgTGVhZmxldCwgYnV0IGZpcnN0IEkgd2lsbCBtdXRhdGUgbG9jYXRpb24gaW50byBsYXQgYW5kIGxvbmc6CgpwbHRfcG9saWNlX2luY2lkZW50c18yMDE4IDwtIHBvbGljZV9pbmNpZGVudHNfMjAxOCAlPiUKICBkcGx5cjo6bXV0YXRlKGxvbmdfbGF0ID0gYXMuY2hhcmFjdGVyKGxvY2F0aW9uKSkgJT4lCiAgdGlkeXI6OnNlcGFyYXRlKGxvbmdfbGF0LCBjKCJsb25naXR1ZGUiLCAibGF0aXR1ZGUiKSwgc2VwPSIsIikgJT4lCiAgZHBseXI6Om11dGF0ZShsb25naXR1ZGUgPSBzdHJfcmVwbGFjZShsb25naXR1ZGUsICJjXFwoIiwiIiksIGxhdGl0dWRlID0gc3RyX3JlcGxhY2UobGF0aXR1ZGUsICJcXCkiLCAiIikpICU+JQogIGRwbHlyOjptdXRhdGUobG9uZ2l0dWRlID0gYXMubnVtZXJpYyhsb25naXR1ZGUpLCBsYXRpdHVkZSA9IGFzLm51bWVyaWMobGF0aXR1ZGUpKQoKCiAgbGVhZmxldChwbHRfcG9saWNlX2luY2lkZW50c18yMDE4KSAlPiUgYWRkVGlsZXMoKSAlPiUKICBhZGRNYXJrZXJzKGNsdXN0ZXJPcHRpb25zID0gbWFya2VyQ2x1c3Rlck9wdGlvbnMoKSkKCgoKCmBgYAoKIyBUb3AgMjUgT2ZmZW5zZXMgaW4gMjAxOAojIyBCYXIgY2hhcnQgZXhhbXBsZSB0byBwbG90IHRvcCAyNSBvZmZlbnNlcyBpbiAyMDE4IGJ5IGNvdW50CgpJbiB0aGlzIHNlY3Rpb24gd2UgZGVtb25zdHJhdGUgbm90IG9ubHkgZGF0YSBtYW5pcHVsYXRpb24gaW5jbHVkaW5nIHRvcF9uLCBidXQgdXNlZnVsIEFkZGluIGF2YWlsYWJsZSBpbiBSU3R1ZGlvICdnZ3Bsb3QgYnVpbGRlcicKR2dwbG90IGJ1aWxkZXIgaXMgcGFydCBvZiBFc3F1aXNzZSBwYWNrYWdlCgpgYGB7ciBnZ3Bsb3RfZXhhbXBsZSwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UsIGVjaG8gPSBGQUxTRX0KCiMgSSB3aWxsIGZpcnN0IGNyZWF0ZSBhIHRhYmxlIHdpdGggMjAxOCBvZmZlbnNlcwoKcG9saWNlX29mZmVuc2VzXzIwMTggPC0gcG9saWNlX2luY2lkZW50c19tYWluX2RmICU+JQogIGRwbHlyOjpzZWxlY3Qob2ZmZW5zZV9kZXNjcmlwdGlvbiA9ICdvZmZlbnNlX2Rlc2NyaXB0aW9uJywgZGF0ZSA9ICdkYXRlX29jY3VyZWQnKSAlPiUKICBkcGx5cjo6ZmlsdGVyKGx1YnJpZGF0ZTo6eWVhcihkYXRlKT09MjAxOCkKCnRvcF8yNV9vZmZlbnNlc19kZiA8LSBwb2xpY2Vfb2ZmZW5zZXNfMjAxOCAlPiUKICBuYS5vbWl0KCkgJT4lCiAgICBncm91cF9ieShvZmZlbnNlX2Rlc2NyaXB0aW9uKSAlPiUKICBzdW1tYXJpc2Uob2ZmZW5zZXMgPSBuKCkpICU+JQogIGRwbHlyOjphcnJhbmdlKGRlc2Mob2ZmZW5zZXMpKSAlPiUKICB0b3BfbigyNSkKICAKCgpsaWJyYXJ5KGdncGxvdDIpCgpnZ3Bsb3QodG9wXzI1X29mZmVuc2VzX2RmKSArCiBhZXMoeCA9IG9mZmVuc2VfZGVzY3JpcHRpb24sIHdlaWdodCA9IG9mZmVuc2VzKSArCiBnZW9tX2JhcihmaWxsID0gIiMwYzRjOGEiKSArCiBsYWJzKHggPSAiT2ZmZW5zZSBEZXNjcmlwdGlvbiIsIHkgPSAiVG90YWwiLCB0aXRsZSA9ICJUb3AgMjUgT2ZmZW5zZXMgMjAxOCIpICsKIGNvb3JkX2ZsaXAoKSArCiB0aGVtZV9taW5pbWFsKCkKCmBgYAoKCgoKCg==