我对R来说相当新,但是越多使用它,我就越发现它对SAS或SPSS的影响有多大。正如我所看到的,其中一个主要好处是能够从网络获取和分析数据。我想这是可能的(甚至可能是直截了当的),但我希望解析网上公开的JSON数据。我不是一个程序员,所以你能提供的任何帮助和指导都将不胜感激。即使你给我一个基本的工作实例,我也许可以解决它。
答案 0 :(得分:84)
RJSONIO是另一个包,它提供了以JSON格式读写数据的工具。
rjson不使用S4 / S3方法,因此不易扩展,但仍然有用。不幸的是,它没有使用矢量化操作,因此对于非平凡数据来说太慢了。类似地,为了将JSON数据读入R,它有点慢,因此不能扩展到大数据,如果这是一个问题。
更新(新套餐2013-12-03):
jsonlite:此包是RJSONIO
包的分支。它建立在RJSONIO
的解析器之上,但实现了R对象和JSON字符串之间的不同映射。这个包中的C代码主要来自RJSONIO
包,R代码已经从头开始重写。除了fromJSON
和toJSON
的插入式替换之外,该包还具有序列化对象的功能。此外,该软件包还包含大量单元测试,以确保所有边缘情况都经过编码和解码,以便与系统和应用程序中的动态数据一起使用。
答案 1 :(得分:51)
jsonlite包易于使用,并尝试将json转换为数据帧。
示例:
library(jsonlite)
# url with some information about project in Andalussia
url <- 'http://www.juntadeandalucia.es/export/drupaljda/ayudas.json'
# read url and convert to data.frame
document <- fromJSON(txt=url)
答案 2 :(得分:19)
这是缺少的例子
library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
答案 3 :(得分:3)
RJSONIO,rjson和jsonlite中的fromJSON()函数不会为复杂的嵌套json对象返回简单的2D data.frame。
要解决此问题,您可以使用 tidyjson 。它接收一个json并始终返回一个data.frame。它目前在CRAN中无法使用,您可以在此处获取:https://github.com/sailthru/tidyjson
更新: tidyjson现已推出,您可以使用install.packages("tidyjson")
直接安装
答案 4 :(得分:2)
为了记录,rjson和RJSONIO确实改变了文件类型,但它们本身并没有真正解析。例如,我收到JSON格式的丑陋MongoDB数据,用rjson或RJSONIO转换它,然后使用unlist和吨手动修正来实际解析为可用的矩阵。
答案 5 :(得分:1)
在控制台
中使用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)