本案例安裝的套件有gdata , RCurl 進行 csv檔的讀取
- gdata、gtools:使用read.xls()或read.csv()進行檔案格式讀取。
- RCurl:使用getURL()來取得csv檔的網址內容。
情境:使用R程式檢查本機的csv檔是否存在,若有則顯示其內容,若無則讀取遠端csv資料,並顯示於data editor上
程式碼如下:
#install.packages("https://cran.r-project.org/bin/windows/contrib/3.6/gdata_2.18.0.zip")
#install.packages("https://cran.r-project.org/bin/windows/contrib/3.6/gtools_3.8.1.zip")
#install.packages("https://cran.r-project.org/bin/windows/contrib/3.6/RCurl_1.95-4.11.zip")
# 要使用RCurl前要安裝bitops
#install.packages("https://cran.r-project.org/bin/windows/contrib/3.6/bitops_1.0-6.zip")
require("gdata")
library("RCurl")
csvFilePath <- "D:/201811.csv"
csvReader <- function()
{
if(!file.exists(csvFilePath)){
print("csv file not found!")
conn <- getURL("http://data.gcis.nat.gov.tw/od/file?oid=B9511C0D-E9E1-4AB4-8371-653B08C79E26")
datalist <- read.csv(textConnection(conn), encoding = "UTF-8-BOM", header = T, stringsAsFactors = F )
}
else #csv檔存在
{
print("csv file exist!")
datalist <- read.csv(csvFilePath , header = T , fileEncoding = "UTF-8-BOM", stringsAsFactors = F )
}
fix(datalist) #當datalist有資料時,會開啟data editor供檢視資料
}
csvReader()
當檔案不存在時,程式執行結果如下:
> csvReader()
[1] "csv file not found!"
fix(datalist)的結果如下圖:補充:read.csv()內的編碼方式設定,可以依據檔案來源的原編碼方式,可透過notepad++來檢視,如下圖。