Это будет name
, только если вы передадите ему именованный объект;попробуйте следующее:
divider <- function(numerator, denominator){
if(denominator == 0)
{
message(class(substitute(denominator)))
}
numerator / denominator
}
x = 3
y = 0
divider(x, y)
# name
# [1] Inf
divider(3, 0)
# numeric
# [1] Inf
Как указано Moody_Mudskipper в комментариях к ответу, это объясняется в файле справки для substitute()
(см. help("substitute")
):
Режим результата, как правило, "вызов", но в принципе может быть любого типа.В частности, выражения с одной переменной имеют режим «имя», а константы имеют соответствующий базовый режим. '