我試圖連接到R的在線數據庫,它可以在這裏找到連接到加拿大統計局JSON: http://open.canada.ca/data/en/dataset/2270e3a4-447c-45f6-8e63-aea9fe94948f如何與R
我將如何能夠將數據表加載到R和那麼只需更改我的代碼中的表名即可訪問其他表?我並不特別關心我需要使用什麼語言(JSON,JSOn-LD,XML)。
在此先感謝!
我試圖連接到R的在線數據庫,它可以在這裏找到連接到加拿大統計局JSON: http://open.canada.ca/data/en/dataset/2270e3a4-447c-45f6-8e63-aea9fe94948f如何與R
我將如何能夠將數據表加載到R和那麼只需更改我的代碼中的表名即可訪問其他表?我並不特別關心我需要使用什麼語言(JSON,JSOn-LD,XML)。
在此先感謝!
假設你知道每個數據集的網址類似的問題可以在這裏找到:
Download a file from HTTPS using download.file()
爲此,它變成了:
library(RCurl)
URL <- "http://www.statcan.gc.ca/cgi-bin/sum-som/fl/cstsaveascsv.cgi?filename=labr71a-eng.htm&lan=eng"
x <- getURL(URL)
URLout <- read.csv(textConnection(x),row.names=NULL)
我通過右鍵獲得的URL點擊訪問按鈕並複製地址。
我不得不宣佈row.names=NULL
爲列的第一行中的數量不等於列數其他地方,從而read.csv
假定行名as described here。我不確定這些數據集的URL在更新時是否會發生變化,但這不是獲取此數據的真正方便的方法。對於直觀地能夠更改數據集,JSON似乎不太好。
至少這樣你可以創建一個網址列表,並執行以下操作:
URL <- list(getURL("http://www.statcan.gc.ca/cgi-bin/sum-som/fl/cstsaveascsv.cgi?filename=labr71a-eng.htm&lan=eng"),
getURL("http://www.statcan.gc.ca/cgi-bin/sum-som/fl/cstsaveascsv.cgi?filename=labr72-eng.htm&lan=eng"))
URLout <- lapply(URL,function(x) read.csv(textConnection(x),row.names=NULL,skip=2))
再次我不喜歡有申報row.names=NULL
,當我看一下這個文件我沒有看到的但是這至少會使文件進入R環境。對多個URL執行操作可能需要更多的工作。
在進一步的努力以獲得有用colnames
:
URL <- "http://www.statcan.gc.ca/cgi-bin/sum-som/fl/cstsaveascsv.cgi?filename=labr71a-eng.htm&lan=eng"
x <- getURL(URL)
URLout <- read.csv(textConnection(x),row.names=NULL, skip=2)
的arguement skip = 2
在CSV讀取時將跳過該第一2行,並且將產生一些標題名稱。由於標題是數字,因此X將放在前面。在這種情況下,第2行在第二列中將具有值「數字」。不幸的是,這些數據似乎是用於excel的,這真的很讓人傷心。
1)您需要將CSV下載到您有權訪問的某個目錄中。
2)使用 「read.csv」,或 「read_csv」,或 「FREAD」 來讀取CSV文件導入R.
yourTableName<-read.csv("C:/..../canadaDataset.csv")
3)您可以名CSV到任何你想要的對象名。
它確實導入了表格,但看起來好像沒有簡單的方法可以通過選擇表格名稱來導入數據,因爲它不在URL中。謝謝! – Duke
是的,我也希望得到那種痛苦。此外,他們的CSV名稱非常差。現在我會好奇他們是否有某種命名約定文檔,可能會幫助你理清哪裏生活在哪裏。我也檢查了元數據文件。沒有真正產生很多信息。 – Badger