iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
AI & Data

機器學習_資料採礦_透過數據協助決策_R語言系列 第 15

[Day 15] 政府開放資料_每日各站點進出站人數_R語言實現excel功能

  • 分享至 

  • xImage
  •  

在R中實現countifs(),sumifs(),vlookup(),取代,移除重複值等功能,只要你想的到的excel功能,在R中都可以實現,並且R是for資料處理的軟體,會處理得更快,更有效率(如果公司電腦爛就加一條更不容易死機)!

政府開放資料資料集:https://data.gov.tw/dataset/8792

備註:(TKT_BEG是每一站的站碼編號,STOP_NAME則是站的名稱)

先進行基本的資料探索
稍微看一下資料,發現...
https://ithelp.ithome.com.tw/upload/images/20181026/20111603B4fmaD5QJa.png

這是個從十幾年前就開始記錄的資料,因使格式不同也是很有可能發生得事情。
首先遇到的第一個問題,明明都是"台東",卻出現**"台東"跟"台東(空白鍵)" ** 兩種,但指的都是同一種東西,因此我選擇用"去掉所有車站的空白鍵的方法",來處理這件事情

取代 gsub

data$STOP_NAME = gsub(" ",replacement="",data$STOP_NAME)
#R語言取代的用法gsub(要取代的東西,取代的東西,資料)

不知為何站名的欄位有很多的空白鍵,如果站名不相同,那無法進行countif或sumif了,因此我們想像成把" "(空白),取代成為"",就可以將空白鍵的部分刪除了。

https://ithelp.ithome.com.tw/upload/images/20181026/20111603GbZacaxJV1.png
#修正成功

再來就是統計總數:

countifs跟 sumifs (group_by + summarise)

統計兩年間"每一個車站"的進站人數,就是說我們把每一個車站當作條件,例如所有只要是叫台北車站的全部抓出來並且加總其進出口。

data1 = data %>% group_by (TKT_BEG,STOP_NAME) %>% summarise(總進站 = sum(進站),總出站 = sum(出站))

https://ithelp.ithome.com.tw/upload/images/20181026/20111603Snvc9A1kdU.png
根據TKT_BEG(站碼)跟STOP_NAME(站名)兩個條件進行,可以看到資料剩下240個。

天數:共4929天,從20050101到20180630日

unique

day = length(unique(data$BOARD_DATE))

將資料"天數"欄位取唯一值,然後計算長度

找出第一筆以及最後一筆資料

head(data$BOARD_DATE,1)
#20050101 head(資料,1)的1表示顯示第1筆資料
tail(data$BOARD_DATE,1)
#20180630 tail(資料,1)的1表示顯示最後1筆資料

不過我發現站碼或是站牌好像出現了重複值(剛剛進行整理的時候似乎顯示出有240個不同的站名+站碼的組合,可是站名似乎沒這麼多),原因可能是出在有站碼改過站名,或是有站名改過站碼,我們用TABLE()的方式去解決。


上一篇
[Day 14] 政府開放資料_每日各站點進出站人數_R語言讀取多個檔案
下一篇
[Day 16] 政府開放資料_每日各站點進出站人數_R語言實現excel功能-2
系列文
機器學習_資料採礦_透過數據協助決策_R語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言