请考虑以下代码:
test <- function(x,n){
selection<-names(x)[n]
graph <- ggplot(x, aes(factor(selection)))
graph + geom_bar()
}
test(mtcars,1)
抛出错误导致R无法找到选择。我还使用了substitute
,eval
和get
但没有成功。我发现this similar question并认为我理解Joris'
回答,但也不能对ggplot的参数使用相同的技巧。
答案 0 :(得分:9)
您可以将aes_string
用于此目的。所以test
应该是这样的:
test <- function(x,n){
graph <- ggplot(x, aes_string(x = names(x)[n]))
graph + geom_bar()
}