カチカチと、古い錠前を開けるような気分だった。
久しぶりに統計ソフトを起動しようとして、まず気づいたのは、手元のPCにRが入っていないということだった。
思えばここ数年、それが必要な場面は少なかった。
クリニックを開いてから、僕の作業の多くは症例報告だった。
ひとりの患者さんの物語を、丁寧に拾い上げて、ページの上に並べていくような作業。あるいは、複数のケースを組み合わせて共通項を見出す、小さな連作短編のようなケースシリーズ。
そんななかで、統計という名の道具は、あまりに大きく、そして鋭すぎることがあった。
統計処理をすれば、たしかに「有意」とか「傾向」とかいう言葉が手に入る。
でも逆に、人の顔をした細部や、わずかなゆらぎは、その数式の影にかくれてしまう。
だから僕は、あえて統計処理を避けてきた。
定規で世界を測るよりも、手でなぞる曲線のほうが、患者さんの実感に近い気がしていたから。
でも、今回は少しちがう。
数がある。ばらつきがある。仮説がある。そして、答えが遠い。
ならばやはり、定規を手に取る必要があるだろう。
Rのインストールを終え、最初に手をつけたのは、Excelで用意したデータの読み込みだった。
ここで、思わぬ落とし穴に足を取られる。
変数名の上に、「開始時」や「3か月後」といった分類の行を足していたのだ。
見た目には整っていたけれど、Rにはそれが「2行のヘッダー」として読み込まれてしまう。
当然、うまくいかない。読み込んだはずの変数が、謎のNAとして並ぶ。
やれやれ、と思いながら、僕はExcelに戻る。
行を削除し、変数名を修正する。
「CRP」のような項目には「CRP0」や「CRP3」と番号をつけることにした。
0が開始時、3が3か月後という意味だ。地味な工夫だけれど、こうしておけばRは迷わない。
人にやさしい形式は、意外とソフトには厳しい。
その後、僕はRの「パッケージ」という概念を思い出す。
Rは本体だけでは最低限の機能しか持っていない。
グラフを描いたり、統計処理をしたり、フロー図を作ったり——それらはすべて「パッケージ」という形で追加される。
そして、使いたいパッケージを「読み込む」のが、library()という命令だ。
たとえば、グラフを描くための ggplot2、データ加工の dplyr、統計処理をGUIで操作できる Rcmdr、
そして今回使った、フロー図を描くための DiagrammeR も、すべて道具箱のようなパッケージたち。
僕ははじめて DiagrammeR を使って、患者フローを描いてみた。
これまではPowerPointで矢印を引いて、テキストボックスを並べて、文字を揃えて……と、手作業に神経を使っていた。
けれど今回、Rでフロー図のコードを書いてみて驚いた。
graph TD
A[IL-6阻害薬使用症例 89人] --> B[RA以外の基礎疾患 4人除外]
B --> C[転院症例 30人除外]
C --> D[First bioでない症例 40人除外]
D --> E[3か月未満で終了 2人除外]
E --> F[解析対象症例 13人]
このわずかなコードで、すっと1本の流れが描かれた。
図はきれいで、矢印は迷いがなく、書き直すのも一瞬。
なんでもっと早く知っておかなかったのか、と思いながら、それでも少し嬉しかった。
こうして、久しぶりにひらいた統計ソフトは、思っていたよりも柔らかく、そして開放的だった。
数字の向こうに流れる物語を、もう一度、描いていこうと思う。
【2025年臨床リウマチ学会総会へ向けて-17】