有沒有辦法將數據從JSON文件導入到R?更具體地說,該文件是包含字符串字段,對象和數組的JSON對象的數組。 RJSON軟件包不清楚如何處理http://cran.r-project.org/web/packages/rjson/rjson.pdf。從JSON文件導入數據到R
回答
首先安裝rjson
包:
install.packages("rjson")
然後:
library("rjson")
json_file <- "http://api.worldbank.org/country?per_page=10®ion=OED&lendingtype=LNX&format=json"
json_data <- fromJSON(paste(readLines(json_file), collapse=""))
更新:自版本0.2.1
json_data <- fromJSON(file=json_file)
另一種包裝是RJSONIO。要轉換嵌套列表,lapply可以提供以下幫助:
l <- fromJSON('[{"winner":"68694999", "votes":[
{"ts":"Thu Mar 25 03:13:01 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}},
{"ts":"Thu Mar 25 03:13:08 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}}],
"lastVote":{"timestamp":1269486788526,"user":
{"name":"Lamur","user_id":"68694999"}},"startPrice":0}]'
)
m <- lapply(
l[[1]]$votes,
function(x) c(x$user['name'], x$user['user_id'], x['ts'])
)
m <- do.call(rbind, m)
在您的示例中給出了有關投票的信息。
如果URL是HTTPS,像用於亞馬遜S3中,然後用的getURL
json <- fromJSON(getURL('https://s3.amazonaws.com/bucket/my.json'))
PSA:getURL在RCurl pacakge中。 – 2015-03-05 04:57:52
此外,函數中的錯誤(type,msg,asError = TRUE): 協議「s3」在libcurl中不受支持或禁用 – d8aninja 2017-08-30 19:05:43
jsonlite
將導入到JSON的數據幀。它可以選擇性地平整嵌套對象。嵌套數組將是數據框架。
> library(jsonlite)
> winners <- fromJSON("winners.json", flatten=TRUE)
> colnames(winners)
[1] "winner" "votes" "startPrice" "lastVote.timestamp" "lastVote.user.name" "lastVote.user.user_id"
> winners[,c("winner","startPrice","lastVote.user.name")]
winner startPrice lastVote.user.name
1 68694999 0 Lamur
> winners[,c("votes")]
[[1]]
ts user.name user.user_id
1 Thu Mar 25 03:13:01 UTC 2010 Lamur 68694999
2 Thu Mar 25 03:13:08 UTC 2010 Lamur 68694999
我喜歡這個答案和庫比接受的更多 – 2016-03-06 05:58:12
首先安裝RJSONIO和RCurl包:
install.packages("RJSONIO")
install.packages("(RCurl")
嘗試使用以下代碼RJSONIO在控制檯
library(RJSONIO)
library(RCurl)
json_file = getURL("https://raw.githubusercontent.com/isrini/SI_IS607/master/books.json")
json_file2 = RJSONIO::fromJSON(json_file)
head(json_file2)
- 1. 從XML文件導入數據到R
- 2. 從URL導入JSON文件到R
- 3. 從包含嵌套JSON對象的文件導入數據R
- 4. 使用java從JSON文件導入數據到MySQL數據庫
- 5. R將JSON數據導入數據框
- 6. 用於將文件從excel導入到R的數據處理
- 7. 從Github導入數據到R(rdata)
- 8. 從R導入數據到excel
- 9. 將json文件從gcloud存儲導入到Firebase數據庫中
- 10. 從.cnv文件導入數據到matlab
- 11. 將數據從文件導入到DataGridView
- 12. 將SAS數據文件導入R
- 13. R和XML - >導入數據文件
- 14. 將文件導入到R數組中
- 15. 將JSON文件導入到JavaScript函數
- 16. 如何導入從文本文件數據到MySQL數據庫
- 17. 導入CSV從混合數據文件導入到MATLAB
- 18. 導出並導入JSON數據到Cytoscape.js
- 19. 將文本文件導入到R
- 20. 導入幾個文本文件到R
- 21. 將文本文件導入到r
- 22. 將多個csv文件從zip文件夾導入到R中
- 23. 從數據文件導入數組
- 24. 導入多個大json文件到一個DataFrame與R
- 25. 把Json編碼的數據從php文件導入到數組上
- 26. 導入數據到文本文件
- 27. 無法通過Logstash從文件導入json數據
- 28. Angular JS,從JSON文件導入一些特定的數據
- 29. 插入數據從JSON文件
- 30. 如何從csv文件導入數據到數據庫中?
Duplicate:http://stackoverflow.com/questions/2061897/parse-json-with-r。如果你有一個特定的數據例子,這將有所幫助。否則,rjson可以做你所需要的,以及數據操作(例如使用apply函數或plyr)。 – Shane 2010-04-11 16:37:37
也類似於這個問題:http://stackoverflow.com/questions/2260147/transposing-json-list-of-dictionaries-for-analysis-in-r。 – Shane 2010-04-11 16:39:16
嗨謝恩,嘗試使用RJSON。我主要對必要的數據操作感興趣。以下是我正在使用的JSON文件的示例。 example.json: [{「winner」:「68694999」,「votes」:[{「ts」:「Thu Mar 25 03:13:01 UTC 2010」,「user」:{「name」 「Lamur」,「user_id」:「68694999」}},{「ts」:「Thu Mar 25 03:13:08 UTC 2010」,「user」:{「name」:「Lamur」,「user_id」:「 68694999 「}}],」 lastVote 「:{」 時間戳 「:1269486788526,」 用戶 「:{」 名稱 「:」 Lamur」, 「USER_ID」: 「68694999」}}, 「startPrice」:0},... ] – user313967 2010-04-11 17:01:37