web-dev-qa-db-ja.com

Rの `=`と `<-`の違いは何ですか?

可能性のある複製:
Rの代入演算子: '='および '<-'

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

100

ここ から:

演算子<-および=は、評価される環境に割り当てられます。演算子<-はどこでも使用できますが、演算子=はトップレベル(たとえば、コマンドプロンプトで入力された完全な式)でのみ、または式のブレースリスト内の部分式の1つとして使用できます。

58
Mark Byers

RobertとCasellaによる「Rによるモンテカルロ法の紹介」を読んでください。

「代入演算子は=であり、同等のブール演算子である==と混同しないでください。古い代入演算子は<-であり、互換性の理由から、引き続き機能しますただし、よりクリーンなプログラミングを保証するために無視する必要があります(Spector、P.(2009)が指摘したように、「Rによるデータ操作」-セクション8.7。、例外はsystem.timeを使用する場合です。キーワードの識別に使用)

代入演算子<-の誤解を招く特徴は、次のようなブール式にあります。

> if (x[1]<-2) ...

これは、x [1]が-2より小さいかどうかをテストすることになっていますが、最終的に2をx [1]に割り当てて、現在の値を消去します。また、

> if (x[1]=-2) ...

誤って(x [1] ==-2)の代わりに同じ結果になります。」

14
George Dontas