Почему эти два случая ведут себя по-разному?
>substitute(c1<-100,list(c1=100)) 100 <- 100
против
> substitute(c1=100,list(c1=100)) [1] 100
Как я понимаю, помощь assignOps Оператор = оценивает сразу. Таким образом, второе выражение эквивалентно substitute(100,list(c1=100)). Но вы можете взять это в фигурные скобки, и результат будет
assignOps
=
substitute(100,list(c1=100))
> substitute({c1=100},list(c1=100)) { 100 = 100 }
Поскольку второе выражение интерпретирует c1 = 100 как говорящее, что аргумент с именем c1 функции substitute должен иметь значение 100.
c1 = 100
c1
substitute