#r #function #ggplot2
Вопрос:
Я пытаюсь написать функцию, которая выводит графики для использования в нескольких стандартизированных кадрах данных. Я пытался осмыслить, что я делаю не так, и не могу этого понять.
# function to plot
plotify <- function(data, x, y){
ggplot2::ggplot(data, aes(x, y))
geom_bar(stat = "identity")
}
plotify(iris, Species, Sepal.Length)
## Error in FUN(X[[i]], ...) : object 'Species' not found
Как вышеприведенный код выдает мне ошибку, но если бы нужно было запустить следующий код,
ggplot(iris, aes(Species, Sepal.Length)) geom_bar(stat = "identity")
Я получаю нужные мне участки? Как я облажался при написании функции?
Ответ №1:
Речь идет о нестандартной оценке. Здесь вы можете использовать curly-curly, чтобы заставить его работать
plotify <- function(data, x, y){
ggplot2::ggplot(data, ggplot2::aes({{ x }}, {{ y }}))
ggplot2::geom_bar(stat = "identity")
}
plotify(iris, Species, Sepal.Length)
Комментарии:
1. Большое вам спасибо! Обязательно придется прочитать о нестандартной оценке!