Rを使うときパッケージ(以下、package)を利用すると思います。
packageとは、Rの機能を拡張する関数、データ、資料の集まりです。
例えば、きれいな図を描きたいときは、ベースのR機能であるplotでは物足りないため、ggplot2 packageを使います。
一般化推定方程式を使いたいときは、ベースのR機能だけでは、数式を読み解き、関数を自作する必要がありますが、gee packageを使えば関数の自作は不要です。
このようにRを使う上でpackageは重要ですし、いろいろなpackageを知っていると楽ができます。ただし、packageの有無を自分の解析能力の限界にする必要はありません。自ら関数が組めると解析の幅が広がります。
packageは山ほどあります。しかし解析によく使うpackageはある程度限られます。この記事では、ぼくが使っている(使いたい)R packageを紹介します。
それでもかなりの分量になりました*1。
データハンドリング
tidyverse
今はこのpackageは手放せませんね。
tidylog
tidyverse関数群でデータセットの形を変形したり、くっつけたりするときに行数を確認することは重要です。dim()やstr()で小まめに確認する癖もつけたいですが、自動で行数等の出力するこのpackageはtidyverseと一緒に使いたいです。
lubridate
時間データを楽に扱うための関数群です。公式チートシートも出ています。
haven
SASやSTATAのデータを読み込むためには、このpackageが必要です。
要約
gtsummary
変数の要約は重要です。臨床研究では要約した結果は必ずTable 1にまとめます。やることは単純なのですが、非常に手間のかかる作業です。しかし安心してください。今、ぼくらにはgtsummary packageがついています!
最近では、glm等でのモデリングの結果も要領よくまとめてくれますし、進化がすごいです。今後も要チェックですね。
可視化
ggplot2
いわずもながですね。きれいな図を作るためにはこのpackageがないと始まりません。library(tidyverse); library(tidylog); library(ggplot2); はセットで覚えましょう。
ggplot2のヘルパー
ggplot2をさらに拡張するpackageもたくさんあります。いくつかあげておきます。
GGally
複数の変数を組み合わせた分布を描写するggpairs()関数もこのpackageに含まれます。
ggobi.github.io
ggpubr
GGallyはどちらかといえば研究者側がデータの性質を把握しやすくするためのpackageです。ggpubrは論文化を意識した図を作成できるpackageです。
(ぼくは好みませんが)群間比較した後にそのP値を図の上の方に出力することもこのpackageでできます。
rpkgs.datanovia.com
ggbeeswarm
(ぼくが好きな)ドットプロットをさらに良い感じにするpackageです。
github.com
gghighlight
複数個体の系列データをプロットするときに、ある個体や特徴をもったグループのみ目立たせたいときがあります。そんなときに使うpackageです。
cran.r-project.org
ggrepel
散布図を描いたときに、各点に対してラベルを貼りたいときがあります。しかし工夫をしないと点とラベルが重なってしまいます。それを解決するpackageです。
ggridges
変数の分布を山脈のように示すことができるpackageです。
ggfority
時系列データを描写するときに使います。
patchwork
ggplotでは、facet関数を使うことで複数の図を1つにまとめることができます。しかし同じ種類の図しかまとめられません。別に描いた図を1つの図としてまとめたい場面はあると思います。それを可能にするのがpatchwork packageです。
ggsci
雑誌は投稿規定に色の使い方を指定する場合があります。リジェクトが続く中、気持ち折れないように、無になりながら、色を細々設定し直すのは苦痛です。
ggsci packageはその苦痛をやわらげます。各種雑誌が指定する色を簡単に設定できます。中にはジョークみたいな色テーマもあります。
統計解析
検定
coin
正確検定を包括的に取り扱うpackageです。
https://cran.r-project.org/web/packages/coin/vignettes/coin.pdf
回帰
broom
Rの組み込み関数(lm, glm, t.test, etc...)の出力をtibble形式に変換します。これにより報告がしやすくなります。
lme4
混合効果モデルを使うのに必要です。
lmerTest
lme4では推定値の検定をしてくれません。このpackageを追加することで検定できるようになります。
gee
一般化推定方程式を使うのに必要です。
https://cran.r-project.org/web/packages/gee/gee.pdf
geepack
geeを拡張します。よりglmっぽく使えるようになります。
https://cran.r-project.org/web/packages/geepack/geepack.pdf
emmeans
このpackageを使えば、モデルを使って推定した後、任意の条件付き推定値を算出することができます。使い方に癖はありますが、手放せないpackageの一つです。
情報量がとにかく多いです。
interactions
交互作用項をモデルに含めたときに、推定した数値を示したり、簡単に図示できるpackageです。emmeansでも同じことができますが、簡単な推定なら、このpackage使うのも手です。
forestplot
複数の変数の点推定値と区間推定値を図示できます。最近はgtsummaryでも同じようなことができます。
boot
ブートストラップをおこなうpackageです。最近は因果推論でもブートストラップで、えいやっ!と信頼区間求めている論文多いです。
https://cran.r-project.org/web/packages/boot/boot.pdf
logistf
個人的な趣味です。ロジスティック回帰モデルやCox比例ハザードモデルを使うときに、推定が不安定になることがあります*2。このとき、ある正則化項を加えると推定が安定します。この推定をおこなうpackageです。サンプルサイズが小さいときに使う場面が多いです。
https://cran.r-project.org/web/packages/logistf/logistf.pdf
生存時間解析
survival
生存時間解析するならば、このpackageは必須です。
https://cran.r-project.org/web/packages/survival/vignettes/survival.pdf
survminer
survival packageよりも良い感じの図を簡単に描けます。
cmprsk
競合リスクの解析にはこのpackageを使います。
https://cran.r-project.org/web/packages/cmprsk/cmprsk.pdf
疫学
Epi
標準的な疫学手法を扱います。
epiR
Epi packageと似ています。こちらの方が現代的かな、という印象です。
因果推論
Matching
マッチングをおこなうpackageです。
http://sekhon.berkeley.edu/papers/MatchingJSS.pdf
MatchIt
傾向スコアを利用して、マッチングから推定まで統一的におこなうpackageです。サイトの情報も充実しており、非常に勉強になります。
WeightIt
傾向スコアを利用して、逆確率重み付けから推定まで統一的におこなうpackageです。
cobalt
因果推論するときは、共変量バランスの確認が必要です。cobalt packageはここを担います。
mediation
オーソドックスな媒介分析をおこなうpackageです。
https://cran.r-project.org/web/packages/mediation/vignettes/mediation.pdf
CMAverse
mediation packageより、さらに効果を分けた媒介分析が可能になります。アイコンがかわいらしい。
機械学習
glmnet
Lasso, Ridge, Elastic netをおこなうpackageです。
glmnetUtils
glmnet packageは使い方に癖があります。それをglmライクに矯正します。
rpart
オーソドックスな決定木分析をおこないます。
https://cran.r-project.org/web/packages/rpart/vignettes/longintro.pdf
partykit
決定木分析が少しおしゃれになります。
https://cran.r-project.org/web/packages/partykit/vignettes/partykit.pdf
pROC
ROC関連のさまざまな解析ができるようになります。
caret
あらゆる機械学習手法をRで使えるようになります。
欠測データ
mice
オーソドックスな多重代入法が可能になります。
Amelia
階層データの多重代入法が可能になります。
時系列解析
tibbletime
tidyverseのフレームワークで時系列データを扱えるようになります。
xts
時系列データの型を提供します。
forecast
時系列モデルの作成と予測をおこないます。
urcs
時系列モデルで単位根の検定をおこなえるようになります。
ベイズ推定
rstan
ベイズを利用することで、さらに柔軟なモデリング可能になります*3。
シミュレーション
MASS
なんとも説明しづらいですが、よく出てくるpackageです。乱数発生させたりします。
rsample
さまざまなサンプリングができるpackageです。
purrr
for構文を現代的に処理することができるpackageです。覚えることは多いですが、使いこなせるようになれば解析やシミュレーションは捗るはずです。
その他
here
RStudioのプロジェクト機能を使えば、フォルダやファイルの参照は楽ですが、here packageを使えばさらに楽になります。
rmarkdown
rmarkdownを使えば、コードとその結果、解析のメモやコメントを文章として出力することができます。これを使って共同研究者等とコミュニケーションしましょう!
sessioninfo
解析に使ったRのバージョンやpackageを記録に残すのも重要です。sessioninfo packageはそれを可能にします。
styler
コードのスタイルをきれいにします。
palmerpenguins
irisデータに替わるデモデータセットです。
sqldf
RでSQL構文が使えるようになります。
zipangu
和暦を簡単に扱えるようになります。
ICD関連
ここ細かすぎるので、刺さる人にしか刺さりません。
icd
ICDを利用した解析が可能になります。
comorbidity
ICDのコーディングができます。
ここまで読んでくださりありがとうございました! 素敵なRライフを!!