Я столкнулся с популярным пакетом data.table
, и одна вещь, в частности, заинтриговала меня. Он имеет оператор присваивания местами
: =
Это не определено в базе R. На самом деле, если вы не загрузили пакет data.table
, это вызвало бы ошибку, если вы попытались использовать его (например, a := 2
) с сообщением:
Ошибка: не удалось найти функцию
":="
Кроме того, почему работает :=
? Почему R позволяет определить :=
как инфиксный оператор, а каждая другая функция infix должна быть окружена %%
, например.
`:=` <- function(a, b) {
paste(a,b)
}
"abc" := "def"
Очевидно, что это не означает альтернативный синтаксис %function.name%
для определения функций infix. Использует ли data.table
некоторые синтаксические особенности R? Это взломать? Будет ли оно "исправлено" в будущем?