大家可以把以下這段程式放在第一周的工作目錄之下執行,你會看到:時間資料經過 適當轉換之後,利用簡單的table()指令,就可以清楚看到汽車竊案的時間分佈。

mvt = read.csv("mvtWeek1.csv")               # 讀進資料
date = strptime(mvt$Date, "%m/%d/%y %H:%M")  # 將時間欄位轉成字串
hour = as.integer(substr(date,12,13))        # 從字串之中抓出小時
date = as.Date(substr(date,1,10))            # 轉成標準的 Date 資料格式
weekday = format(date, '%w')                 # 換算出星期幾
table(hour,weekday)                          # 做成列聯表
##     weekday
## hour    0    1    2    3    4    5    6
##   0  2028 1900 1691 1814 1856 1873 2050
##   1  1236  825  777  790  816  932 1267
##   2  1019  712  603  619  696  743  985
##   3   838  527  464  469  508  560  836
##   4   607  415  414  396  400  473  652
##   5   461  542  520  561  534  602  508
##   6   478  772  845  862  799  839  541
##   7   483 1123 1118 1140 1135 1203  650
##   8   615 1323 1175 1329 1298 1268  858
##   9   864 1235 1174 1237 1301 1286 1039
##   10  884  971  948  947  932  938  946
##   11  787  737  786  763  731  822  789
##   12 1192 1129 1108 1225 1093 1207 1204
##   13  789  824  762  804  752  857  767
##   14  959  958  908  863  831  937  963
##   15 1037 1059 1071 1075 1044 1140 1086
##   16 1083 1136 1090 1076 1131 1165 1055
##   17 1160 1252 1274 1289 1258 1318 1084
##   18 1389 1518 1553 1580 1510 1623 1348
##   19 1342 1503 1496 1507 1537 1652 1390
##   20 1706 1622 1696 1718 1668 1736 1570
##   21 1696 1815 1816 1748 1776 1881 1702
##   22 2079 2009 2044 2093 2134 2308 2078
##   23 1584 1490 1458 1511 1579 1921 1750

然後再使用heapmap(),就可以把列聯表畫成熱圖。從熱圖我們可以看到周間、周五、和周末的竊案時間分佈之間,有很明顯的差異。

heatmap(table(hour,weekday), Rowv=NA, Colv=NA, col = cm.colors(64))