6
> within( list(a="a",b="b"), c="c" )
Error in eval(expr, envir, enclos) : argument is missing, with no default
> within( list(a="a",b="b"), c<-"c" )
$a
[1] "a"

$b
[1] "b"

$c
[1] "c"

これら2つが同等であってはならない理由が正確にはわかりません。. _ =_ c_ ...この動作を無効にする方法はありますか? 私は試した、

within( list(a="a",b="b"), `c`="c" )

しかし、それも失敗します。

4

2 に答える 2

8

c="c"(またはその形式の句)が指定された引数として解釈されていることは正しいです。いいえ、それを無効にする方法はありません。おそらく、R パーサーのレベルで処理されます。

この と の違いは文書化され=ています<-?"<-"

演算子 '<-' と '=' は、それらが評価される環境に代入します。演算子 '<-' はどこでも使用できますが、演算子 '=' はトップ レベル (たとえば、コマンド プロンプトで入力された完全な式) または中括弧で囲まれた式のリストの部分式の 1 つとしてのみ使用できます。 .

「式の波括弧付きリスト」の代表的な例は関数本体です。これは、is(body(plot.default))たとえばlength(body(plot.default)).

于 2013-05-13T18:49:34.777 に答える