Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between `=` and `<-` in R? [duplicate]

People also ask

What is the difference of between in and ==?

Put simply: == determines if the values of two objects are equal, while is determines if they are the exact same object. *id() is a built-in function in Python. It accepts a single parameter and is used to return the identity of an object.

What is the difference between <- and <<- in R?

Compare <- and = in the global environment in R The inbuilt function environment() returns the name of the current environment. We can see below that there is no difference between using <- or =.

What is the difference between the == and in operators in R?

What is the Difference Between the == and %in% Operators in R. The %in% operator is used for matching values. “returns a vector of the positions of (first) matches of its first argument in its second”. On the other hand, the == operator, is a logical operator and is used to compare if two elements are exactly equal.

What does %>% mean in R studio?

%>% is called the forward pipe operator in R. It provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression.


From here:

The operators <- and = assign into the environment in which they are evaluated. The operator <- can be used anywhere, whereas the operator = is only allowed at the top level (e.g., in the complete expression typed at the command prompt) or as one of the subexpressions in a braced list of expressions.


Reading from "Introducing Monte Carlo Methods with R", by Robert and Casella:

"The assignment operator is =, not to be confused with ==, which is the Boolean operator for equality. An older assignment operator is <- and, for compatibility reasons, it still remains functional, but it should be ignored to ensure cleaner programming. (As pointed out by Spector, P. (2009). 'Data Manipulation with R' - Section 8.7., an exception is when using system.time, since = is then used to identify keywords)

A misleading feature of the assignment operator <- is found in Boolean expressions such as

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

which is supposed to test whether or not x[1] is less than -2 but ends up allocating 2 to x[1], erasing its current value! Note also that using

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

mistakenly instead of (x[1]==-2) has the same consequence."