web-dev-qa-db-ja.com

JSONをRで解析する

私はRにはかなり慣れていませんが、Rを使用すればするほど、Rが実際にどれほど強力であるかがわかります。SASまたはSPSS。 Webからデータを取得および分析する機能。これは可能だと思いますが(おそらく簡単です)、Webで公開されているJSONデータを解析したいと考えています。私はプログラマーではありません。基本的な作業例を示していただいても、おそらくそれを介して作業することができます。

82
Btibert3

[〜#〜] rjsonio [〜#〜] Omegahatからは、JSON形式でデータを読み書きする機能を提供する別のパッケージがあります。

rjson はS4/S3メソッドを使用しないため、容易に拡張できませんが、依然として有用です。残念ながら、ベクトル化された操作を使用しないため、重要なデータには遅すぎます。同様に、JSONデータをRに読み込む場合、多少遅いため、これが問題になると、大規模なデータに対応できません。

更新(新しいパッケージ2013-12-03):

jsonlite :このパッケージは、RJSONIOパッケージのフォークです。 RJSONIOのパーサー上に構築されますが、RオブジェクトとJSON文字列間の異なるマッピングを実装します。このパッケージのCコードの大部分はRJSONIOパッケージのもので、Rコードはゼロから書き直されています。 fromJSONおよびtoJSONのドロップイン置換に加えて、パッケージにはオブジェクトをシリアル化する機能があります。さらに、パッケージには、すべてのEdgeケースがシステムおよびアプリケーションの動的データで使用するために一貫してエンコードおよびデコードされることを確認するための多数のユニットテストが含まれています。

84
rcs

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)
53
joscani

ここに不足している例があります

library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
19
Leeth

RJSONIO、rjson、jsonliteのfromJSON()関数は、ネストされた複雑なjsonオブジェクトに対して単純な2D data.frameを返しません。

これを克服するには、tidyjsonを使用できます。 jsonを取り込み、常にdata.frameを返します。現在、CRANでは使用できません。ここから入手できます。 https://github.com/sailthru/tidyjson

更新:tidyjsonがcranで利用可能になりました。install.packages("tidyjson")を使用して直接インストールできます

3
pauljeba

レコードについては、rjsonとRJSONIOはファイルタイプを変更しますが、実際には解析されません。たとえば、JSON形式のMonいMongoDBデータを受け取り、rjsonまたはRJSONIOで変換してから、unlistと大量の手動修正を使用して、実際に解析して使用可能なマトリックスにします。

2
Jason

コンソールで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
Moby M