1. ホーム
  2. r

[解決済み] "=" と "<-" には技術的な違いがあるのでしょうか?重複] [重複] [重複

2022-03-05 01:51:08

質問

代入演算子には技術的な違いがあるのでしょうか? "=""<-" をRで使うと何か違いがあるのでしょうか?

例1. a = 1 または a <- 1

例2. a = c(1:20) または a <- c(1:20)

ありがとうございました。

スヴェン

解決方法は?

はい、あります。のヘルプページにはこのように書かれています。 '=' と書いてあります。

<ブロッククオート

演算子 <- および = は、その演算子を使用することによって 環境である。 が評価されます。演算子 <- は、以下のように使用することができます。 一方、演算子=は はトップレベルでのみ許可されます(例. で入力された完全な式で コマンドプロンプト)または の中括弧付きリストの中の部分式です。 の式で表されます。

ヘルプにある "can be used" は、ここにオブジェクトを代入することを意味します。関数呼び出しでは、オブジェクトに = なぜなら = は、そこに引数を割り当てることを意味します。

基本的に <- というように、現在の環境で使用できるようになる変数を代入します。例えば、考えてみてください。

matrix(1,nrow=2)

これは2行の行列を作るだけです。では、考えてみましょう。

matrix(1,nrow<-2)

これもまた2行の行列になりますが、ここではさらに nrow と評価され、2 になります! 2回目の使用では、引数として nrow 2 を割り当てたのではなく、オブジェクト nrow 2の第2引数に送り、それを matrix であり、それはたまたまnrowである。

編集する

編集された質問についてですが どちらも同じです。の使い方は = または <- は、どちらが良いのか、多くの議論を引き起こす可能性があります。多くのスタイルガイドでは <- には同意するが、その周囲にはスペースを入れること。 <- を指定しないと、解釈するのが非常に難しくなります。もしスペースを使わないのであれば(ツイッター以外では使うべきですが)、私は次のようにします。 = を使用し、決して -> !

しかし、実際には、選択に一貫性がある限り、何を使ってもかまいません。使用方法 = を1行に、そして <- を使うと、非常に醜いコードになります。