Rを使った開発、データ分析の効率化に有用そうなパッケージのメモ。
パッケージの紹介
1. データ加工
tidyverse
データフレームやリストの読み込み、加工、可視化などを扱うインターフェース的なパッケージ。
中に{dplyr}や{purrr}などのパッケージが含まれている。
{tidyverse}を使うと、簡潔かつ再利用性の高いコードを記述できるようになる。
以下の記事に詳しい紹介あり。
俺たちのtidyverseはこれからだ!
simputation
様々な方法の欠損値補完を1行で実装できる。
パイプ処理を前提にしており、{tidyverse}との相性も抜群。
余談だが、欠損値補完にランダムフォレストなどの機械学習モデルを使う方法は最近知った。
以下の記事に詳しい紹介あり。
[【R言語】欠損値補完パッケージ「simputation」が使いやすそう、という話] (http://skroot3.hatenablog.com/entry/2018/02/11/212451)
2. 分析
caret
Rにおける様々な機械学習パッケージを統一的に扱うインターフェース。
細かいことを考えなければ、引数のmethodを"glmnet"とか"nnet"とかやるだけでアルゴリズムを変えられる。
Pythonのscikit-learn的なポジションと言えそう。
似たようなもので{MLR}というパッケージもあるが、そちらは使ったことがないのでよくしらない。
時系列系
(ここに何かしら挙げたいのだが、最近扱っていないので何を載せるべきかわからない……)
3. レポーティング
rmarkdown
Rのデータや図表を貼ったhtmlやPDFを自動で出力できる。
分析結果をまとめる際に、いちいちパワポやエクセルに貼り付ける作業をやりがちだが、なるべくそういう作業は減らしたい。
顧客への報告などの資料の細かい見栄えまでこだわる場面では良いが……
RStudioを使えば簡単に記述・出力できるし、目的変数を変えて大量に分析するといった場合はknitr::render()
をforreach
とかで回せば自動で一気にレポートを作成できる。
{rmdformats}を組み合わせると見栄えもグッと良くなるのでおすすめ。
reporteRs
どうしてもパワーポイントじゃないとダメな場合にはこっち。
Rの32bitにしか対応していないのが難点。
基本的に{rmarkdown}でhtmlを出力するほうが好きなので、あんまり使ってない。
DT
Javascriptを使ったインタラクティブなテーブルをhtmlに表示できる。
300種類の説明変数の係数一覧とか、100点以上のグリッドサーチの結果一覧とかを全部出しても人間には理解不能だが、20件ずつ表示とかにするとぐっと見やすくなる。
{rmarkdown}と組み合わせて使うとよい。
以下の記事に詳しい紹介あり。
DTでインタラクティブな表作り
4. 処理全般
foreach
for文を高速に実行できる。
apply
ファミリーも高速だが、再利用する時に意外と困る。foreach
の方が概ね再利用しやすいコードが書けるだろう。
{doParallel}と組み合わせることで、簡単に並列化できるようになる点もメリット。
以下の記事に詳しい紹介あり (どちらも筆者は同じ)。
for を捨てよ、foreach を書こう
【超訳】foreach パッケージの使い方 #rstatsj
その他、随時追記予定。