Как передать / оценить аргументы функции в другой функции для использования с ggplot? - PullRequest
5 голосов
/ 17 октября 2011

Пожалуйста, обратите внимание на следующий код:

test <- function(x,n){

selection<-names(x)[n]
graph <- ggplot(x, aes(factor(selection)))
graph + geom_bar()
}

test(mtcars,1)

Выдает ошибку, поскольку R не может найти выбор. Я также поиграл с substitute, eval и get без успеха. Я нашел этот похожий вопрос и подумал, что понял ответ Joris', но не могу использовать тот же трюк и для аргументов ggplot.

1 Ответ

9 голосов
/ 17 октября 2011

Вы можете использовать aes_string для этой цели.Так что test должно быть так:

test <- function(x,n){
  graph <- ggplot(x, aes_string(x = names(x)[n]))
  graph + geom_bar()
}
...