cucumber flesh

Rを中心としたデータ分析・統計解析らへんの話題をしていくだけ

⭐️RでJSONパーサーのjqを使って快適なAPI暮らしを

jqというC言語で書かれた軽量のJSONパーサー(コンピュータが読みやすい表示になっているものを人間でも見やすくする感じのもの)の一種であるjqの機能をRに導入した{jqr}パッケージを試したのでメモ。

本家のjqでできることはだいたいできる(対応しているバージョンはjq 1.4)と思うけど、jq自体の経験がないのでよくわかっていない部分がある。ただ、APIラッパーのパッケージや関数を書くときに{jqr}がなかなか良さそうだ。

RubicureAPI政府統計 e-Stat API使って試してみる。

なおJSONのような階層構造のあるデータをR上で可視化するのに{xmlview}{jsonview}が便利である。

uribo.hatenablog.com

続きを読む

🍭hoxom task view (ホクソエム一周年記念)

タイトルの通り、匿名知的集団「ホクソエム」が結成されてから一年経つっぽい(ぽいというのは結成された日付が曖昧だから)。

よく一年もこのノリを続けてきたなと思うところもあるが、「ホクソエムの誓い」とか現実でホクソエムに遭遇した体験とか、謎の帰属意識とかあって好きだった。

それを祝う意味で以前記事を書いた(👇)がそれは前座。以前からやろうと思っていた「hoxom task view」を結成一周年記念で作った。

uribo.hatenablog.com

納得できていない部分もあるけど、それはそれでまた改善していけば良いだろうということで公開する。そしてこの記事では、hoxom task viewに登録されているパッケージについて、少し説明をしていきたいと思う。

HOXOM Task View: HOXOM that Japanese Secret Society of Data Science

続きを読む

📢アサートを使って堅牢なデータ設計をしよう

🍵 所感

(内容の前に書いておきます)

パイプ演算子によって、Rを使ったデータ分析の作業は流れるようにわかりやすく、実行しやすくなりました。その一方で、中間的処理の結果に対してはないがしろになっているという点があります。この処理で間違えていないだろうという「かもしれない運転」をした結果、大事故を起こしかねない状況と言えるかもしれません。データは簡単に変化するし、意図しない値を含んでしまう可能性があることを常に意識するべきで、都度振り返りが必要なのでしょう。

しかしいちいち処理の内容を確認するのは面倒だし、何よりも分析の流れを止めてしまうのは良くない気がします。アサートを設定するのは面倒ではありますが、一度作っておくと繰り返しの処理で有効になるので大変便利で役立ちます。{assertr}パッケージでは、パイプ関数とアサートを組み合わせて利用することでデータ分析の流れを中断することなく、アサートを埋め込むことが可能となっています。とりあえず私は積極的に利用していくつもりです。

ちなみにRによるアサートの紹介記事を id:yutannihilation1年前に書いており、アサートを導入する参考としてご覧になることを勧めます。しかしそこでは今回扱う{assertr} パッケージについて深く触れられていません。

データに生じる人為的な「バグ」

データ分析の結果は実行してみないと結果がわからないものですが、そうしたものではなく、データ入力時に桁数を多くするとか演算記号の指定を間違えたり、計算の途中に作った不本意な変数の列を残したままにしていたりするおかげで、コンピューターによる計算結果が予想しないものになることがあります。それは日常的に潜む落とし穴のようなものであり、人間が指定したプログラムを釈然と実行するコンピューターと比較するとその「バグ」はなくなることがありません。

「バグ」は些細なものから分析結果を左右するくらい大きな影響力をもったものまで実にさまざまです。このような「バグ」を生じないよう、自分自身が気をつけていても誰かがもってきたデータにはすでに「バグ」が潜んでいるかもしれず、「バグ」を見逃さないために何度もデータを確認しなくてはいけません。

そうした分析の結果以外の人為的要因によって生じる、意図しないプログラムの実行を報告する仕組みとして「アサート assert」と呼ばれるものがあります。アサートは、プログラムコード内にプログラマー自信がそのコードの仕様や意図を記述しておくことで、実行時にその仕様に沿わない状態を検出した際に「バグ」として報告するというものです。

f:id:u_ribo:20160319104816p:plain

続きを読む