The 5 assignment operators of "R"
In every programming language I've used, '=' is the assignment operator, but in R you can assign 1 to x in the 5 different ways listed below. I'm sharing this with you because it reminded me how many ways there are to skin a cat, and how each of those choices has tradeoffs.
[A] x = 1
[B] x <-1
[C] 1 -> x
[D] x <<- 1
[E] 1 ->> x
[A] x = 1
'=' is supported in R, but rarely used. Google Style Guide says don't use it. And I've never seen R code that does.
[B] x <-1
'<-' Is the most commonly used, so you'll almost always see x<-1. Some R people claim x<-1 is a superior assignment operator since the '=' assignment operator (x=1) can be confused with the equality operator (x==1). It strikes me the '<-' assignment operator can be confusing as well. When using negative integers a single space can really change the meaning aka: x<-1 vs x < -1. Trade offs are everywhere!
[C] 1 -> x
Assignment arrows work in both directions in the human mind, and they do in R too.
[D] x <<- 1
'<<-'. Assign not to x in local scope, but the x that is in the first parent scope. To do this in a C family language you'd have to specify you wanted the x in the parent scope e.g: ::x = 1. Notice the difference in R is that the operator changes the meaning of the variable passed to it. This is very strange in other languages.
[E] 1 ->> x
Assignment arrows work in both directions in the human mind, and they do in R too.
Comments