Возможный дубликат:
Операторы присваивания в R: '=' и' <-'Я использую R 2.8.1, и возможно использовать обоих
=
и<-
как переменные операторы присваивания. Каково различие между ними? Какой я должен использовать?
Из здесь :
Операторы <- и = присваивают среда, в которой они оцениваются. Оператор <- может использоваться где угодно, тогда как оператор = разрешен только на верхнем уровне (например, в полном выражении, вводимом в командной строке) или как одно из подвыражений в списке выражений в фигурных скобках.
Чтение из «Введение в методы Монте-Карло с R» Роберта и Казеллы:
«Оператор присваивания =
, не путать с ==
, который является логическим оператором равенства. Более старый оператор присваивания - <-
, и по соображениям совместимости он по-прежнему работает, но должен быть игнорируется для обеспечения более чистого программирования.
(Как указано Spector, P. (2009). 'Data Manipulation with R' - Section 8.7., исключение составляет использование system.time
, поскольку = затем используется для определения ключевых слов)
В булевых выражениях, таких как
> if (x[1]<-2) ...
, используется вводящая в заблуждение особенность оператора присваивания <-, которая должна проверять, меньше ли x [1] чем -2, но в конце выделяет 2 для x [1], стирая его текущее значение! Также обратите внимание, что ошибочное использование
> if (x[1]=-2) ...
вместо (x [1] == - 2) имеет те же последствия ».