在R中實現countifs(),sumifs(),vlookup(),取代,移除重複值等功能,只要你想的到的excel功能,在R中都可以實現,並且R是for資料處理的軟體,會處理得更快,更有效率(如果公司電腦爛就加一條更不容易死機)!
政府開放資料資料集:https://data.gov.tw/dataset/8792
備註:(TKT_BEG是每一站的站碼編號,STOP_NAME則是站的名稱)
先進行基本的資料探索
稍微看一下資料,發現...
這是個從十幾年前就開始記錄的資料,因使格式不同也是很有可能發生得事情。
首先遇到的第一個問題,明明都是"台東",卻出現**"台東"跟"台東(空白鍵)" ** 兩種,但指的都是同一種東西,因此我選擇用"去掉所有車站的空白鍵的方法",來處理這件事情
data$STOP_NAME = gsub(" ",replacement="",data$STOP_NAME)
#R語言取代的用法gsub(要取代的東西,取代的東西,資料)
不知為何站名的欄位有很多的空白鍵,如果站名不相同,那無法進行countif或sumif了,因此我們想像成把" "(空白),取代成為"",就可以將空白鍵的部分刪除了。
#修正成功
再來就是統計總數:
統計兩年間"每一個車站"的進站人數,就是說我們把每一個車站當作條件,例如所有只要是叫台北車站的全部抓出來並且加總其進出口。
data1 = data %>% group_by (TKT_BEG,STOP_NAME) %>% summarise(總進站 = sum(進站),總出站 = sum(出站))
根據TKT_BEG(站碼)跟STOP_NAME(站名)兩個條件進行,可以看到資料剩下240個。
天數:共4929天,從20050101到20180630日
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()的方式去解決。