118

R 2.8.1 を使用していますが、変数代入演算子として=との両方を使用できます。<-それらの違いは何ですか?どちらを使用する必要がありますか?

4

2 に答える 2

67

ここから:

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

于 2010-02-16T08:56:55.080 に答える
17

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) の代わりに同じ結果になります。」

于 2010-02-16T09:53:35.707 に答える