大家可以把以下這段程式放在第一周的工作目錄之下執行,你會看到:時間資料經過 適當轉換之後,利用簡單的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))