R позволяет назначать через <-
и =
.
В то время как между двумя операторами присваивания тонкие различия, похоже, существует широкий консенсус в отношении того, что <-
является лучшим выбором, чем =
, поскольку =
также используется в качестве значений отображения операторов для аргументов, и поэтому его использование может привести к неоднозначным утверждениям. Ниже приведен пример:
> system.time(x <- rnorm(10))
user system elapsed
0 0 0
> system.time(x = rnorm(10))
Error in system.time(x = rnorm(10)) : unused argument(s) (x = rnorm(10))
Фактически код стиля Google запрещает использование =
для назначения (см. комментарии к этому ответ для обратного просмотра).
Я также почти исключительно использую <-
как оператор присваивания. Тем не менее, почти в предыдущем предложении есть причина этого вопроса. Когда =
действует как оператор присваивания в моем коде, он всегда случайный, и если это приводит к проблемам, то их обычно трудно обнаружить.
Я хотел бы знать, есть ли способ отключить назначение через =
, и пусть R выдает ошибку в любое время =
для назначения.
Оптимально это поведение произойдет только для кода в глобальной среде, так как может быть код в прикрепленных пространствах имен, который использует =
для назначения и не должен прерываться.
(Этот вопрос был вдохновлен обсуждением Джонатан Нельсон)