DiaryException このページをアンテナに追加 RSSフィード

2011-02-19(土)

[]RでJSONデータを処理する (rjson)

最近は様々なWebサービスJSON形式のデータ提供している。これはJSONが軽量の書式で、JavaScriptを使ったWebサービスが普及しているから、JSONデータ流通させることでサービス間の連携を容易にするためだと考えられる。

そこで、ある程度のデータを集計するためにはJSONデータを上手く処理出来る必要がある。そして、僕はデータマイニングツールにRを使っている。RでJSONデータを処理するためにはどうするか。


Google検索して、rjsonというライブラリを見つけた。RオブジェクトJSONデータを相互変換出来るようだ。

Rで処理するデータ例として、Google Elevation APIから取得した標高データを用いた。標高データは {位置 (緯度, 経度), 標高}の組から成る。試しに、北海道 (43.0 (北緯), 141.4 (東経))から沖縄 (26.2 (北緯), 127.7 (東経))までの直線で結ばれるパス上の標高データを取得した。

f:id:LaclefYoshi:20110219144852p:image

これをRとrjsonを使って、経度をX軸、標高をY軸としてプロットした。

f:id:LaclefYoshi:20110219144853p:image

沖縄 (東経: 127.7)が左側、北海道 (東経: 141.4)が右側になっている。日本海の深さも標高データから取得できているようだ。

JSONデータkey名をあらかじめ知っている必要があるが、rjsonを使ってRで容易にJSONデータを処理することが出来ることが分かった。

rjsonではS4/S3形式のJSONデータを扱えないが、より新しいライブラリRJSONIOでは扱える。またRJSONIOは拡張性を考慮している。rjsonとRJSONIOが提供するメソッドはある程度互換があるようだ。

2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |