Я пишу функцию, в которой я хотел бы иметь возможность передавать переменные из фрейма данных в виде атомарных векторов, например df$var
(например, mtcars$mpg
).
Чтобы сохранитьпример очень простой, скажем, функция просто возвращает data.frame(table(df$var))
:
foo.function <- function(var) {
data.frame(table(var))
}
head(foo.function(mtcars$mpg))
#> var Freq
#> 1 10.4 2
#> 2 13.3 1
#> 3 14.3 1
#> 4 14.7 1
#> 5 15 1
#> 6 15.2 2
Обратите внимание, что имя табличной переменной в возвращаемой таблице является внутренним именем переданного объекта (var
), а не«оригинальное» имя, которое было mpg
.Можно ли извлечь mpg
(только имя) из функции (без изменения или добавления аргументов)?Я был склонен сказать нет, так как R просто получает вектор значений, но я подозреваю, что R может иметь эту емкость в зависимости от того, что он может делать с NSE .