Ответ 1
Там функция aes_string
, которую я действительно не вижу, учитывая известность, которая делает именно это:
FUN <- function(dat, x, y) {
ggplot(dat, aes_string(x = x, y = y)) +
geom_point()
}
FUN(mtcars, "mpg", "hp")
Часто я использую ggplot2 в своей работе и создаю функции обертки для ускорения работы. Использование нестандартной оценки (NSE) aes
заставляет меня использовать фактические имена переменных, а не передавать символьные строки. Поэтому я копирую и переименовываю dataframes и имена переменных, чтобы успокоить ggplot2. Там должен быть лучший способ. Как я могу сделать ggplot2 принимать неизвестные имена данных и имена столбцов с помощью оболочки функций без репликации фрейма данных и использования имен общих столбцов?
Это работает:
ggplot(mtcars, aes(x=mpg, y=hp)) +
geom_point()
Это не:
FUN <- function(dat, x, y) {
ggplot(dat, aes(x = x, y = y)) +
geom_point()
}
FUN(mtcars, "mpg", "hp")
Там функция aes_string
, которую я действительно не вижу, учитывая известность, которая делает именно это:
FUN <- function(dat, x, y) {
ggplot(dat, aes_string(x = x, y = y)) +
geom_point()
}
FUN(mtcars, "mpg", "hp")