Ошибка пользовательской функции построения графика R — Ошибка в FUN(X[[i]], …) : объект » Вид » не найден

#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. Большое вам спасибо! Обязательно придется прочитать о нестандартной оценке!