iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 12
2
Data Technology

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

【12】當老闆想更瞭解:除了抓當天的農產品行情價以外,有沒有辦法抓更早之前的價格啊?

在下載資料的接口中,其實他們有提供參數可以客製化下載的需求,日期也是其中一個參數,不過我已經找不到之前參數的說明頁面了...囧,所以我就只介紹我已知道的參數,FOTT是資料下載格式,StartDate和EndDate分別是開始時間與結束時間,不過這邊需要注意的一點是這兩個欄位年份要用民國年份帶入,而且似乎不能跨天數下載,一次僅能下載一天的資料量,舉例來說:我要下載今年1月13日的行情資料,我的API 就是這樣帶。

http://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx?FOTT=CSV&StartDate="106.01.13"&EndDate="106.01.13"

所以啦,假設我們的目標是下載今年一月的資料,那我們先定義範圍。

start <- as.Date("2017-01-01")
end   <- as.Date("2017-01-31")

然後使用while 迴圈跑每一天

theDate <- start
while (theDate <= end){

    theDate <- theDate + 1                    
}

別忘了下載的年份必須要是民國,要轉換成chineseDate。

theDate <- start
while (theDate <= end){
    year <- as.integer(format(theDate,"%Y")) - 1911
    month_date <- format(theDate,".%m.%d")
    chineseDate <- paste0(year, month_date)

    theDate <- theDate + 1                    
}

然後用paste0() 這個函式組出字串。

download.file(paste0(url, "&StartDate=", chineseDate, "&EndDate=", chineseDate),destfile = paste0("downloaded/file", chineseDate, ".csv"), method = "curl")

執行後,就只要等待他慢慢下載到完成

https://ithelp.ithome.com.tw/upload/images/20171229/20107299OVy9w2u0qZ.png

可以看到我的downloaded 資料夾放好了今年一月的所有csv 檔。

https://ithelp.ithome.com.tw/upload/images/20171229/20107299sxQNzTtdrE.png

ref
day12原始碼


上一篇
【11】當老闆想瞭解:我最近對台灣農產品有興趣,你可以幫我抓個資料分析嗎?
下一篇
【13】當老闆很想瞭解:既然現在有了這些農產品行情資料,那你可以幫我找今年一月中,平均上價高於200且交易量前幾名的作物是哪些嗎?
系列文
你都在公司都在幹啥R? R語言資料分析經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言