@ ответ Акруна демонстрирует , как разрешить его, но я думаю, что ответ на ваш вопрос " Почему?" находится в ?substitute
где говорится в деталях:
Если это обычная переменная, ее значение подставляется, , если env
не равно .GlobalEnv
, в этом случае символ остается неизменным.
(Выделение мое.) Когда вы выполняете это в приглашении по умолчанию >
, вы находитесь в глобальной среде. Не так в вашем первом примере, внутри пространства имен функции. (Что касается «Почему R-core выбрал такое поведение?» , я не думаю, что я квалифицирован, чтобы отвечать или даже строить предположения.)