The manual状態:"=" R演算子を関数で使用しないでください。
演算子「< - 」はどこでも使用することができ、オペレータに対し は「=」のみがトップレベル(例えば、コマンドプロンプトで入力した完全な発現の )で許可されていますまたは中括弧で囲まれた式のリスト内の部分式のうちの1つを とします。
The question hereは、関数呼び出しで使用された場合の違いを示します。しかし、関数定義では、それが正常に動作しているようです:
a = function()
{
b = 2
x <- 3
y <<- 4
}
a()
# (b and x are undefined here)
を手動でthe operator ‘=’ is only allowed at the top level
と述べ、なぜ?
はlanguage definitionでそれについては何もありません(リストされている無=
オペレータ、どのような恥はありません!)
これは、[セクション10.4.2インディックスと接頭辞演算子]のR-langに記載されています(http://cran.r-project.org/doc/manuals/R-lang.html#Infix-and-prefix-operators )、あなたが言及したヘルプエントリーにあるものよりはるかに多くは言わない。 –
あなたが引用しているテキストは、 "最上位レベル** OR **の部分式の中括弧のリスト"となっています。あなたは部分式の括弧内のリストでそれを使用しています。許可されます。 – Andrie
トップレベルでもカッコ内でもない表現を見つけるには、すばらしい長さに移動する必要があります。ここに1つあります。 'try(x < - f())'は問題ありませんが、 'try(x = f(x))'はそうではありません。代入演算子を追加するか、カッコを追加します –