R подставить в выражение с присваиванием - PullRequest
2 голосов
/ 28 апреля 2010

Почему эти два случая ведут себя по-разному?

>substitute(c1<-100,list(c1=100))
100 <- 100

против

> substitute(c1=100,list(c1=100))
[1] 100

Ответы [ 2 ]

2 голосов
/ 29 апреля 2010

Как я понимаю, помощь assignOps Оператор = оценивает сразу. Таким образом, второе выражение эквивалентно substitute(100,list(c1=100)).
Но вы можете взять это в фигурные скобки, и результат будет

> substitute({c1=100},list(c1=100))
{
    100 = 100
}
2 голосов
/ 28 апреля 2010

Поскольку второе выражение интерпретирует c1 = 100 как говорящее, что аргумент с именем c1 функции substitute должен иметь значение 100.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...