我对R相当陌生,但是使用得越多,我看到的就比SAS或SPSS强大得多。我看到的主要好处之一就是能够从Web上获取和分析数据。我想这是可能的(甚至可能很简单),但是我正在寻找解析Web上公开可用的JSON数据的方法。我决不是一名程序员,因此,您能提供的任何帮助和说明将不胜感激。即使您为我指出了一个基本的工作示例,我也可能会完成它。
Answers:
Omegahat的RJSONIO是另一个软件包,提供了以JSON格式读写数据的功能。
rjson不使用S4 / S3方法,因此不容易扩展,但仍然有用。不幸的是,它没有使用向量化操作,因此对于非平凡数据来说太慢了。类似地,对于将JSON数据读入R来说,它有些慢,因此不能扩展到大数据,这是一个问题。
更新(新软件包2013-12-03):
jsonlite:此软件包是该软件包的分支RJSONIO
。它基于解析器构建,RJSONIO
但在R对象和JSON字符串之间实现了不同的映射。此程序包中的C代码大部分来自RJSONIO
程序包,R代码已从头开始重写。除了落在替代fromJSON
和toJSON
,所述封装具有功能序列化的对象。此外,该软件包还包含许多单元测试,以确保所有边缘情况都得到一致的编码和解码,以与系统和应用程序中的动态数据一起使用。
该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)
jsonlite
否则它和叉子用来吃汤差不多有用。
这是缺少的例子
library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
RJSONIO,rjson和jsonlite中的fromJSON()函数不会为复杂的嵌套json对象返回简单的2D data.frame。
为了克服这个问题,您可以使用tidyjson。它接受一个json并始终返回一个data.frame。它目前在CRAN中不可用,您可以在这里获得:https : //github.com/sailthru/tidyjson
更新: tidyjson现在在cran中可用,您可以使用直接安装install.packages("tidyjson")