3

本当のことを言うと、私はここで怠けているだけですが、いつか誰かがここに答えがあることで利益を得ることができるかもしれません.

次のような関数を定義するとします。

fn<-function(envir=parent.frame())
{
    #do something with envir
}

私の質問は次のとおりです。envir の内容は何だと思いますか?

コンテキスト:parent.frame への呼び出しを含むかなり長い関数 f1 がありました。ここで、その関数の一部 (parent.frame 呼び出しを含む) を新しいヘルパー関数 f2 (f1 によって呼び出される) に抽出し、f1 が以前と同じように動作することを確認したいと考えています。

4

1 に答える 1

3

デフォルトの引数は、関数 call の評価フレーム内で評価され、そこからparent.frame()呼び出し環境になります。envirしたがって、の値は、fn呼び出された環境へのポインタになります。

また、試してみてください。

debug(fn)
fn()
# debugging in: fn()
# debug at #2: {
# }
Browse[2]> envir
# <environment: R_GlobalEnv>
于 2013-03-19T16:29:25.343 に答える