demo$first
вызывает функцию $
, и эта функция возвращает NULL
, если правый аргумент не найден.
undefined_object
не является вызовом функции, это просто имя объект, но этот объект не существует.
Если вы просто напечатаете два выражения, вы увидите, что они разные:
> demo$first
NULL
> undefined_object
Error: object 'undefined_object' not found
Поэтому, когда вы поместите их в is.null()
звоните, вы получите разные результаты, как вы видели.