Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ここ半年くらいでAIに作らせたR用ツール

 ここ半年くらいでAIに作らせたR用ツール

Avatar for eitsupi

eitsupi

July 25, 2026

Other Decks in Programming

Transcript

  1. 自己紹介 Tokyo.R 121 @eitsupi 本業:手料理サブスク Tsuklio のデータ周り 副業:Columnar 社で Apache

    Arrow ADBC 周りの開発 Excel が嫌になり R を使い始めて 7 年 Rocker プロジェクト(Shell、R、Docker) Polars R パッケージ(R、Rust) 最近は arf の人、後述 2
  2. 最近やってたこと Tokyo.R 121 2025 r-polars の開発 Japan.R 2025 で発表 エージェンティックコーディングに移行

    2026 これまで手を出せなかったツール群を作成 このスライドも Codex CLI に Typst で作らせた 3
  3. 最近作ったツール Tokyo.R 121 arf rd2qmd jgd R 端末 radian の置き換え(Rust)

    Rd → Markdown 変換 pkgdown の置き換え(Rust) R グラフィックデバイス httpgd の置き換え(C、TypeScript、Go、Rust) 4
  4. 着想 Tokyo.R 121 radian を置き換えたい radian を何年も使っていたが、Python 製なのが嫌だった - インストール面倒(uv

    使えば今は楽ですが) - Windows 上の文字コード問題 「Ark と Nushell を組み合わせればできるのでは?」というところから開始、 なので Rust 製 7
  5. IPC・Headless Tokyo.R 121 外部から R セッショ ンを操作 コマンド送信 コードの評価 端末なしで起動

    R 側へパッケージの インストール不要 IDE / AI 連携を想定 テスト用途で有用と 後から気付く 13
  6. 着想 Tokyo.R 121 r-polars のウェブサイトで使っている altdoc の Rd から md

    への変換が 不正確なため、表示を直したかった Rd を正確に Markdown へ変換する決定的な実装は見つからず Rust はこの手の処理に向いているっぽいので、試しに作ってみた 15
  7. 変換前 / 変換後 Tokyo.R 121 Quarto Markdown Rd # A

    Simple Function \name{simple} \title{A Simple Function} \usage{simple(x, y = 1)} \arguments{ \item{x}{The first argument.} \item{y}{Defaults to 1.} } \examples{simple(1, 2)} → ## Usage ```r simple(x, y = 1) ``` ## Arguments | Argument | Description | |---|---| | `x` | The first argument. | | `y` | Defaults to 1. | 17
  8. 使い方 Tokyo.R 121 rd2qmd convert man/ -o docs/ # Markdownを出力

    rd2qmd convert file.Rd -f md # 並列処理 rd2qmd convert man/ -o docs/ -j4 単体の Rd ファイルまたはパッケー ジ全体を変換 パッケージ内・外のリンクを解決 topic index を JSON で生成 R のインストールは不要 18
  9. arf への組み込み Tokyo.R 121 rd2qmd Rd を Markdown へ変換 →

    arf Help Browser パッケージのヘルプを端末に表示 rd2qmd の変換処理を使って、arf に Help Browser を実装できました。 19
  10. 着想 Tokyo.R 121 httpgd jgd vscode 上で R を使う定番 R

    パッケージ側は C 製・外部依存なし C++製の描画処理・ HTTP サーバーを同梱 描画命令を JSON に変換し 外部サーバーへ送信 ビルド大変、CRAN から度々削除 JSON の解釈は外部サーバー側の責務 Grant 氏が jgd を公開した際に、「これだ!」と開発に参加 21
  11. アーキテクチャ Tokyo.R 121 ggplot / base graphics ↓ R Graphics

    API ↓ jgd C · zero dependency ↓ JSONL jgd 自身は描画しません R の描画命令を記録して JSON へ変換します Renderer 側が実際の描画を行います socket / named pipe / TCP ↓ Renderer VS Code / Browser / etc. 24
  12. Renderer Tokyo.R 121 vscode-r バージョン 3 Deno 製のブラウザー向けサーバー リサイズや plot

    history にも対応 jgd パッケージ内の仕様書に沿って サーバー開発可能 install.packages("jgd") jgd::jgd() plot(cars) 25
  13. jgd の動作確認・E2E テスト Tokyo.R 121 headless arf R の起動・コード実行 →

    jgd / Renderer 描画命令を連携 → headless browser 描画・リサイズ ブラウザをリサイズ → R でプロット関数を実行 → 再描画を確認 コーディングエージェントが R とブラウザの両方を操作・観測でき、 開発・デバッグが効率化 26
  14. まとめ Tokyo.R 121 arf:Rust 製の R コンソール rd2qmd:Rd から Markdown・Quarto

    への変換 jgd:描画命令を JSON に変換する R グラフィックデバイス 興味があればぜひ使ってみてください Enjoy! 28