R 能够将ggplot美学指定给应返回ggplot对象的函数
我试图构造一个行为类似于ggplot函数的函数,并返回一个ggplot对象,其他函数可以进一步处理它(添加方面、应用主题等) 我现在面临的障碍是,我无法让传递到函数的参数像我期望的那样工作R 能够将ggplot美学指定给应返回ggplot对象的函数,r,function,ggplot2,aesthetics,R,Function,Ggplot2,Aesthetics,我试图构造一个行为类似于ggplot函数的函数,并返回一个ggplot对象,其他函数可以进一步处理它(添加方面、应用主题等) 我现在面临的障碍是,我无法让传递到函数的参数像我期望的那样工作 data(iris) te <- function(data,x,y){ g <- ggplot(data,aes_q(x=quote(x),y=quote(y))) + scale_x_continuous() + scale_y_continuous() + geom_point(
data(iris)
te <- function(data,x,y){
g <- ggplot(data,aes_q(x=quote(x),y=quote(y))) + scale_x_continuous() +
scale_y_continuous() + geom_point()
return(g)
}
te(iris,x=Species,y=Petal.Length)
我希望这能使我不以字符串的形式传递参数,但很明显,我在这里做错了什么。对我来说,奇怪的是geom_point是一个抱怨的函数。为什么会这样?调用函数时,请尝试
quote
:
data(iris)
library(ggplot2)
te <- function(data,x,y){
g <- ggplot(data,aes_q(x,y)) + scale_x_continuous() +
scale_y_continuous() + geom_point()
return(g)
}
te(iris,x=quote(Species),y=quote(Petal.Length))
数据(iris)
图书馆(GG2)
在函数中,您需要使用替换而不是引用:
data(iris)
te <- function(data,x,y){
x <- substitute(x)
y <- substitute(y)
g <- ggplot(data,aes_q(x=x,y=y)) + scale_x_discrete() +
scale_y_continuous() + geom_point()
return(g)
}
te(iris,x=Species,y=Petal.Length)
数据(iris)
te
data(iris)
te <- function(data,x,y){
x <- substitute(x)
y <- substitute(y)
g <- ggplot(data,aes_q(x=x,y=y)) + scale_x_discrete() +
scale_y_continuous() + geom_point()
return(g)
}
te(iris,x=Species,y=Petal.Length)