0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLM時代のR環境構築

0
Last updated at Posted at 2026-10-10

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が動くところから始めてもいいのかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?