On Fri, Jun 18, 2010 at 2:15 PM, Horace Tso <horace....@pgn.com> wrote:
> Li li,
>
> I know many S-language old timers would tell you to use <- over = for 
> assignment. Speaking from my own painful experience of debugging S/R codes, I 
> much much much prefer '='. In fact, I'd like to see the R language get ride 
> of '<-' as the assignment operator.
>
> Here is why.
>
>> x = -5:10
>> x
>  [1] -5 -4 -3 -2 -1  0  1  2  3  4  5  6  7  8  9 10
>
> Now I want to find elements of x which are smaller than negative 2, or -2. So 
> naturally I'd do,
>
>> which(x<-2)
> Error in which(x <- 2) : argument to 'which' is not logical
>
> Oops, what happened? If you look up help pages for 'which', you'd find no 
> clue.
>
> What occurred in the parenthesis is that you've overidden your vector x with 
> a single value of 2, thanks to the assignment operator '<-'.
>
> This' a big problem not just because you might end up spending hours finding 
> out what's wrong with such innocent expression. The worst part is, you'd have 
> lost your vector x forever. Just image if x is 1200 by 1200 matrix.
>

I prefer <- because it makes more sense.  It evokes the idea of
assignment, which is what it is, whereas = reminds one of equality
which is wrong since its not equality but assignment.

Its also consistent with <<- whereas it seems highly inconsistent to
use = and <<- .   Its also less ambiguous when not used on the left
hand side of a statement.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to