Как функция в R может распознавать код (или имена переменных), переданные в качестве аргументов?
Например, предположим, что у меня есть фрейм данных people
со столбцом gender
. Если я использую функцию dplyr
filter
, я могу фильтровать свои записи следующим образом:
filter(people, gender=="M")
Функция вызывается с 2 аргументами, people
и gender=="M"
. Я ожидал бы, что R сначала оценит 2 выражения и передаст их значения в качестве параметров в вызов функции. Однако в контексте вызова функции gender
является неопределенной переменной, а gender=="M"
сама по себе приведет к ошибке Object Not Found.
Как этот вызов функции оценивается в R, и почему приведенный выше синтаксис имеет смысл?