iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
1
Data Technology

你都在公司都在幹啥R? R語言資料分析經驗分享系列 第 13

【13】當老闆很想瞭解:既然現在有了這些農產品行情資料,那你可以幫我找今年一月中,平均上價高於200且交易量前幾名的作物是哪些嗎?

  • 分享至 

  • xImage
  •  

今天的內容算是前幾天的複習,如果大家熟悉前幾天介紹的dplyr ,那麼這次老闆交代的任務其實非常簡單,首先,我們使用list.files 把所有下載下來的資料集合起來。

fruit_price_data <- list.files(path="downloaded/", pattern="*.csv", full.names=TRUE) %>% 
    map_df(~read_csv(.))

結果你應該會發現出現了幾筆非常詭異的資料。

https://ithelp.ithome.com.tw/upload/images/20171230/20107299h2ch9O3zc7.png

這問題其實在資料清潔時非常容易遇到,你手上的資料有很大的機率跟你預期很不一樣,我們發現下載下來的資料中,有某幾天的資料根本是空的。

https://ithelp.ithome.com.tw/upload/images/20171230/20107299QYIS9TKLJV.png

使用Number/Excel 打開資料長這樣...

https://ithelp.ithome.com.tw/upload/images/20171230/20107299pVTH2vFXNq.png

不過之前有介紹過dplyr ,我們可以用這樣的方式去除空資料。

result <- fruit_price_data %>%
    filter_at(1, any_vars(is.na(.))) %>%
    select_at(-1) 

https://ithelp.ithome.com.tw/upload/images/20171230/20107299vZizS2iv9f.png

再來,根據物品名稱去group,求得各個欄位後再排序。

result <- fruit_price_data %>%
    filter_at(1, any_vars(is.na(.))) %>%
    select_at(-1) %>%
    group_by(作物代號, 作物名稱) %>%
    summarise(上價平均=mean(上價, na.rm = TRUE) ,
                  中價平均=mean(中價, na.rm = TRUE) ,
                  下價平均=mean(下價, na.rm = TRUE) ,
                  總交易量=sum(交易量, na.rm = TRUE)) %>%
    filter(200 < 上價平均) %>%
    arrange(desc(總交易量))

就可以得出結果。

https://ithelp.ithome.com.tw/upload/images/20171230/20107299wfzruq3otU.png

從結果發現,大部分符合如此條件的作物都是進口品或者是花卉。

ref
day13原始碼


上一篇
【12】當老闆想更瞭解:除了抓當天的農產品行情價以外,有沒有辦法抓更早之前的價格啊?
下一篇
【14】當老闆突然問:對了,有沒有什麼辦法可以分析地址啊?可以顯示在地圖上的那種。
系列文
你都在公司都在幹啥R? R語言資料分析經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言