[R]讀取外部csv檔加入資料集並檢視結果

本案例安裝的套件有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++來檢視,如下圖。