Какая разница между `=` и `<-` в R?

Возможный дубликат:
Операторы присваивания в R: '=' и '< -'

Я использую R 2.8.1, и можно использовать как =, так и <- как операторы присваивания переменных. Какая разница между ними? Какой из них я должен использовать?

Ответ 1

От здесь:

Операторы < - и = присваивают в среду, в которой они оцениваются. Оператор < - может использоваться в любом месте, тогда как оператор = разрешен только на верхнем уровне (например, в полном выражении, введенном в командной строке) или в качестве одного из подвыражений в скобках списка выражений.

Ответ 2

Чтение из "Введение методов Монте-Карло с R", Роберт и Казелла:

"Оператор присваивания =, не следует путать с ==, который является логическим оператором для равенства. Более старый оператор присваивания <-, и по соображениям совместимости он по-прежнему остается функциональным, но он следует игнорировать, чтобы обеспечить более чистое программирование. (Как указано Spector, P. (2009). "Манипуляция данными с R" - раздел 8.7. Исключение составляет при использовании system.time, так как = используется для определения ключевых слов)

Недопустимая функция оператора присваивания < - находится в булевом такие выражения, как

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

который должен проверить, является ли x [1] меньше, чем -2, но заканчивается up выделяя 2 на x [1], стирая его текущее значение! Также обратите внимание, что использование

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

ошибочно вместо (x [1] == - 2) имеет такое же следствие. "