タグ

ブックマーク / m-hiyama.hatenablog.com (2)

  • R言語メタプログラミングのサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の記事「R言語メタプログラミングの基礎」では、タイトルどおりに基礎的事項を説明しましたが、実例がありませんでした。メタプログラミング機能を使ったサンプルを紹介します。 内容: 2変数関数の3Dグラフを描きたい surf()関数の使用例 surf()関数の実装 2変数関数の3Dグラフを描きたい Rの組み込み関数にcurve()があります。curve(x^2 + x, xlim=c(-2, 2)) のように呼び出すだけで、1変数関数 f(x) = x^2 + x のグラフを描いてくれます。 2変数関数のグラフを描くには、persp()関数が使えますが、curve()のようにお手軽ではありません。事前に関数の値を計算したマトリックスを作っておく必要があります。例えば、「ベルトラン/ボレルのパラドックスから見える確率の音と建前」でpersp()を使ってグラフを描いていますが、次のような準備を

    R言語メタプログラミングのサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • R言語メタプログラミングの基礎 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Rはメタプログラミングの能力を持っていますが、情報がまとまってなくて苦労します。けっこう落とし穴もあります。基的な事項をここにまとめておきます。 内容: 関数オブジェクトの基構造 関数オブジェクトのコンストラクタ ペアリストと仮引数リスト 空な名前とデフォルト値なし コールオブジェクトと関数体 関数の評価環境 関数の登録先環境 コールオブジェクトの操作 引数の式をコールオブジェクトとして取得する その他のメタプログラミング・ツール メタプログラミングのサンプル R言語メタプログラミングの基礎:補足 関数オブジェクトの基構造 ユーザーが定義した関数をデータとして見ると、3つの部位(スロット、メンバー)を持つ構造体と考えることができます。3つの部位とは、仮引数リスト(formal parameter list)、体(body)、環境(environment)です。その要点を次の表にま

    R言語メタプログラミングの基礎 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1