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 выдает ошибку в любое время = для назначения.
Оптимально это поведение произойдет только для кода в глобальной среде, так как может быть код в прикрепленных пространствах имен, который использует = для назначения и не должен прерываться.
(Этот вопрос был вдохновлен обсуждением Джонатан Нельсон)