R 2.8.1 を使用していますが、変数代入演算子として=
との両方を使用できます。<-
それらの違いは何ですか?どちらを使用する必要がありますか?
2 に答える
ここから:
演算子 <- および = は、それらが評価される環境に代入します。演算子 <- はどこでも使用できますが、演算子 = は最上位 (たとえば、コマンド プロンプトで入力された完全な式) または中括弧で囲まれた式のリストの部分式の 1 つとしてのみ使用できます。
Robert と Casella による「Introducing Monte Carlo Methods with R」からの読み取り:
「代入演算子は=
、と混同しないでください==
。これは、等値を表すブール演算子です。古い代入演算子は<-
and であり、互換性の理由から、まだ機能していますが、よりクリーンなプログラミングを確保するために無視する必要があります。(指摘したようにSpector, P. (2009).「Data Manipulation with R」 - セクション 8.7.、例外は を使用する場合です。system.time
これは、 = がキーワードの識別に使用されるためです)
代入演算子 <- の誤解を招く機能は、次のようなブール式に見られます。
> if (x[1]<-2) ...
これは、x[1] が -2 より小さいかどうかをテストすることになっていますが、x[1] に 2 を割り当てて、現在の値を消去してしまいます! 使用することにも注意してください
> if (x[1]=-2) ...
誤って (x[1]==-2) の代わりに同じ結果になります。」