=
か <-
か要約: 本サイトでは代入に =
を使っていますが、今は <-
を使う人が多数派です。気になったら =
を <-
に読み替えてください。
以下は詳しい話です。
Rの代入(付値)は x <- 5
でも x = 5
でもできます。
> x = 1 # xに1を代入 > x <- 1 # xに1を代入 > x<-1 # xに1を代入 > x < -1 # xが-1より小さいか
Rで <-
の代わりに =
が使えるようになったのは2001年からのようです。Rの前身のSについては、=
が使えるようになったのは1998年のVersion 4からで、John M. Chambers, Programming with Data: A Guide to the S Language (1998) では主に =
が使われ、p.15で <-
も使えることが言及されています。Use = or <- for assignment? に歴史的な事情がいろいろ書いてあります。
しかし、最近は <-
が優勢です。Google's R Style Guide でも <-
が使ってあります。
代入に =
を使う人も、<-
が代入であることを意識していないと、とんでもないバグに陥ってしまうことがあります。例えば条件判断で
if (a < -1) x = 1 else x = 2
をうっかり
if (a <-1) x = 1 else x = 2
と書くと a
に1を代入してしまい、1は「真」なので x
はつねに1になってしまいます。
このサイトでは、Pythonのコーディング規則 PEP 8 に倣って、代入の =
は両側にスペースを入れ、関数の引数では =
の両側にスペースを入れない流儀を使っています:
x = sqrt(2) print(x, digits=16)