これは実際には「DOではありません!しかし、..関数入力パラメータでのクロスパッシング
私はこれを書いて何が起こるかを見ました。
circit <-function(x=deparse(substitute(y)),y=deparse(substitute(x)))
{
return(list(x=x,y=y))
}
二つの例:
> circit()
$x
[1] "deparse(substitute(x))"
$y
[1] "deparse(substitute(y))"
> circit(3)
$x
[1] 3
$y
[1] "3"
注意出力に "X" と "Y" の微妙なスワップ。
私は論理に従うことができないので、誰かが引数のパーサーがこの不条理なデフォルト入力のペアをどのように処理するか説明できますか?
"評価されない"評価された "y">は評価されません。ここで<評価されていないy "は' deparse(代入(x)) " "x"が評価されている間に解読される。 'deparse(substitute(x))'の代わりに、 'circit(、3 + pi^1.24)$ x'のような単純な呼び出しは、未評価の" y "呼び出しを解読するだけの評価をします。 –