本文へスキップ
cd /languages
  • 統計計算
  • プログラミング
  • AST・シンボル対応

MaguyvaのR対応: 分析とパッケージのコードグラフ

MaguyvaはAST、シンボル、グラフでRに対応しています。AIエージェントはRのスクリプトとパッケージ全体で、関数、S3とS4のディスパッチ、モデル適合の呼び出しをたどれます。

Rが浅いAIツールをつまずかせるところ

Rは基本関数、パッケージの関数、あなた自身の関数を1つのフラットな名前空間に置きます。ドットはメンバーアクセスではなく名前の一部です。is.na、data.frame、print.summary_table はそれぞれ1つの識別子です。print.summary_table を print のメソッドとして読むツールは構造を誤り、基本関数の呼び出しをすべて記録するツールは、あなたの関数を c() と paste() の下に埋もれさせます。

MaguyvaはRの名前を分割せずに保ち、基本関数のノイズを除外するため、エージェントには分析が実際に依存している関数が見えます。

MaguyvaがRで抽出するもの

Maguyvaは .R、.Rmd、.Rnw ファイルをRに対応付けます。clean_survey <- function(df) のように名前に代入された関数はその名前で抽出され、無名関数は定義として扱われません。ドットを含む名前がレシーバーとメンバーに分割されることはありません。

一部の基本的なRの呼び出しは、分析コードのつながりを示すため、意図的にグラフに残されます。S3とS4のディスパッチ(UseMethod、standardGeneric)、applyファミリー(lapply、sapply、vapply、mapply)、モデル適合(lm、predict、anova)、パッケージの読み込み(library、require)、そして tryCatch によるエラー処理です。

グラフには、インスタンス化、読み取りと書き込みも記録されます。

エージェントへのプロンプト例

  • 「clean_survey を呼び出しているのは誰で、どのモデルがその出力を使っているか?」(find_symbol、次に dependency_search の incoming)
  • 「fit_model を呼び出している関数はどれか?」(dependency_search)
  • 「load_raw_data から最終的な回帰までの経路を追跡して。」(get_task_context)

既知の制限

  • 約800個の基本R、stats、graphics の名前は関係性から除外されます。たとえば print、paste、c、data.frame、プロットの呼び出し、乱数生成関数です。それらには text_pattern_search を使ってください。
  • Rはクラスの作成やパッケージの読み込みを通常の関数呼び出しで行うため、structural_search の classes、imports、variables プリセットは何も選択しません。find_symbol と text_pattern_search を使ってください。
  • .Rmd と .Rnw ファイルはチャンクごとではなく全体がRの文法で読み込まれるため、R MarkdownやSweaveの文書では部分的な結果になることを想定してください。
  • Rにはデコレーターの構文がないため、デコレーターの関係性は適用対象外とされています。

次のステップ

クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。データサイエンスの混在したリポジトリについては、Pythonガイドもご覧ください。

最適な用途

  • > 多くのエクスポートされた関数、S3メソッド、内部ヘルパーを持つRパッケージ。
  • > データクリーニングとモデリングの関数を共有するスクリプトに分かれた分析パイプライン。
  • > どの関数がどのモデルにつながるかを把握する必要があるAIエージェントに、Rのコードを渡すデータチーム。

エージェントワークフロー

  • > データクリーニング関数が返す列を変更する前に、その呼び出し元をすべて見つける。
  • > どの関数が `UseMethod` を通してディスパッチし、そのメソッドがどこにあるかを追跡する。
  • > 生データの読み込みから適合済みモデルまでの経路をマッピングする。

エンジンの詳細

  • > Rの対応は `.R`、`.Rmd`、`.Rnw` を対象にします。名前に代入された関数はその名前で抽出され、`data.frame` のようなドットを含む名前は分割されません。
  • > S3とS4のディスパッチ(`UseMethod`、`standardGeneric`)、applyファミリー、`lm`、`predict`、`tryCatch` は意図的にグラフに残されます。
  • > `print`、`paste`、`c` のような約800個の基本R、`stats`、`graphics` の名前は関係性から除外されます。

役立つMCPエントリーポイント

  • find_symbol

    定義と呼び出し元が必要なときに、クリーニング、モデリング、S3メソッドの名前で使ってください。

  • dependency_search

    出力を変更する前に、ヘルパー関数に対してincomingのトラバーサルを使い、それに依存する分析を確認してください。

  • get_task_context

    「生データの読み込みから最終的な回帰までの経路を追跡して」のようなプロンプトに使ってください。