RStudioのTerminalタブで、Claudeを起動しようとしました。
$ claude
bash: claude: command not found
見つからない、と言われます。
RStudioのTerminalタブはbashで開いていて、Claudeの入っている場所がPATH(bashがコマンドを探しにいく場所)に入っていなかったのが原因でした。PATHを通したら、RStudioの中からも起動できました。ただ、RStudioで開いているRのセッションをClaudeが直接操作するところまではできていません。つなぐためのパッケージもあるようですが、そこまではやっていないです。
できることはできる。でも、PATHの設定のような手間がかかる。ターミナルなら、こういうことは考えなくていい。
普段の私のやり方は、ターミナルでClaudeを起動して指示を出し、出力結果とスクリプトファイルをVS Codeで見て確かめる、というものです。RやPythonを使うたびに、RStudioやAnacondaのような別のツールを使わないといけないのが、ちょっと嫌なんですよね。少なくともそのツールのUIは覚えないといけないし、それ自体が学習コストになります。Anacondaにいたっては、規模の大きい組織で使うと、有料のライセンスが必要になることもあります。なので、基本はVS Codeとかでやりたい。Pythonはもう、何も考えずにそうできています。ところがRとなると、まずRStudioが出てくる。
記事1・記事2の分析(記事1、記事2)でも、RStudioは使っていません。Rはターミナルだけで動いていて、コードも環境構築も、ほとんどAIがやっていました。私は出力結果とスクリプトファイルを確認していただけなので、この記事は手順書ではなく、AIがどういう構成にしていたかの報告です。
記事2でやったglmやsurveyはPythonでも同じようなことができるので、わざわざRの環境を作るニーズがどれだけあるのかは、よく分かりません。AIと一緒にRを使ってみたい人の参考になればと思います。
AIが組んだ構成
AIがRを動かすときにやっていることは、ほとんどがターミナルでのコマンド実行です。なので、ターミナルからRscriptでRが動いて、パッケージがプロジェクトごとにそろっていて、スクリプトも図や表もファイルとして残っていれば足ります。そうなっていれば、私は出力結果とスクリプトファイルをVS Codeで開いて確かめるだけで済みます。
実際、AIが作ったプロジェクトのフォルダは、ざっくりこうなっていました。
プロジェクトのフォルダ/
├── scripts/ 番号つきのRスクリプト(00から順にRscriptで実行する)
├── renv/ プロジェクト専用のパッケージ置き場
├── renv.lock 使ったパッケージとバージョンの記録
├── .Rprofile このフォルダでRを起動すると、renvを有効にする
├── data/ ダウンロードしたデータと、加工したデータ
├── outputs/ 図・表・検証の記録
└── docs/ 設計書と、結果のレポート
| 役割 | AIが選んだもの |
|---|---|
| R本体 | Homebrewで入れたr(R 4.6.1)。RStudioもR.appも使わない |
| パッケージの管理 | renv。プロジェクトごとにパッケージを分けて、renv.lockに記録する |
| 実行 | 全部Rscript scripts/xx.Rの形 |
| 図 | PNGでファイルに保存。日本語はヒラギノで描く |
renvは、Pythonでいう仮想環境とrequirements.txtを合わせたようなもの、と理解しています。プロジェクトのフォルダの中にパッケージを入れるので、ほかのプロジェクトやMac全体のRと混ざりません。
スクリプトを順に見ていくと、分析のすぐ後ろに検証用のスクリプトがついていました。glmを回す10番の後に、結果を別の計算と突き合わせる11番。surveyを回す12番の後に13番。自分で書いていたら、たぶんここまではやっていないと思います。
renvのキャッシュの置き場所をプロジェクトの中に指定する設定など、何のためなのか分からないものもいくつかありました。AIが作業していた環境の都合なのだと思います。
フォントの件
記事1・記事2の図には日本語が入っていて、普通に表示されていました。私は何もしていません。ところが、フォントを指定せずに描くと、こうなります。
日本語は全部「□」、いわゆる豆腐です。
コードを読むと、AIは図を描くところで、Cairoという描画の仕組みを使い、フォントにヒラギノを指定していました(type = "cairo"とfamily = "Hiragino Sans")。同じ図をこの指定で描くと、ちゃんと出ます。
フォントのキャッシュの置き場所も用意してあって、コメントには「Cairoなら日本語フォントを正しく扱える」と理由も書いてありました。
私が気づく前に、片付いていたわけです。今どきのAIは、ちょっと手に負えんなと改めて思いました。
手順は、もう覚えなくていい
じゃあ手順は、というところなんですけど。正直、コマンドを覚える価値なんぞ、LLM時代にはもうなくなってしまったと思っています。こういう風に頼んだらできますよ、というだけの話です。
- Rは Homebrew で入れて、ターミナルから
Rscriptで動かしたい - パッケージは renv でプロジェクトごとに管理して、
renv.lockに記録してほしい - スクリプトは
scripts/に番号順に置いて、Rscriptで実行する形にしてほしい - 図はPNGで保存して、日本語が化けないようにしてほしい
(この頼み方で一から試したわけではないので、そこは「たぶん」です。)
つまずきそうなところも、AIのほうで先に手当てしてありました。Homebrew版のRはパッケージをソースからビルドするので時間がかかるとか、最初はパッケージのダウンロード先(CRANのミラー)が決まっていないので指定しないとエラーになるとか。そういうところも、組んだセットアップの中でちゃんと処理されていました。
手順を調べて、コマンドを一つずつ打って、エラーが出たら検索して……という時間が、まるごと要らなくなっている。
思い返すと、AIエージェントがまだそこまで強くなかった頃は、Google Colab向けのコードをAIに生成させて、頑張ってデバッグしながら使っていた記憶があります。それが、わずか半年前の話なんですよね。凄まじいスピードで、すごい世の中になっちゃったなぁと思います。
少し書くだけなら、Google Colabも
少し書くだけなら、Google Colabもいいかもしれません。ランタイムをRに切り替えれば、ブラウザだけでRが動きます。パッケージは開くたびにインストールし直しになりますが、毎回最初に同じコードを流せば、ちゃんと動かせます。
昔、大学院の講義で「RをなぜオンラインのGoogle Colabでやらないのか」と質問したことがあります。RコンソールとRコマンダーの設定がそこそこ大変だったからなんですよね。教授回答はオンラインにデータをアップロードするのが大変だ、という話でしたね。
RStudioから始めなくてもいい
Pythonなら何も考えずにできることが、Rだとひと手間かかる。冒頭のPATHの話も、そのひと手間でした。
それでも、ターミナルでRが動く状態さえあれば、AIと一緒にRを使うのは、Pythonとそれほど変わりませんでした。
VS CodeやCursorとかを使って、色々呼び出してうまく使っていく世の中に、やっぱりなっていくんだろうなと思います。今、PythonもそもそもAnacondaを使ってコーディングしている人って、結構少ないような気がするんですよね。
LLM時代のR環境構築は、RStudioを入れるところからではなく、ターミナルでRscriptが動くところから始めてもいいのかもしれません。

