R 如何引用引号中的函数参数?
我指定了一个函数来绘制如下图形:R 如何引用引号中的函数参数?,r,function,ggplot2,R,Function,Ggplot2,我指定了一个函数来绘制如下图形: func.plot <- function(z){ df %>% ggplot(aes(z)) + geom_histogram(aes(y =..density..), binwidth = 0.004, col="red", fill="green",
func.plot <- function(z){
df %>%
ggplot(aes(z)) +
geom_histogram(aes(y =..density..),
binwidth = 0.004,
col="red",
fill="green",
alpha=.2) +
geom_density(col=2) +
labs(title="title", x="z", y="vertical axis")
}
当使用
func.write(df)
调用时,此函数也未正确实现。它将写入数据,但名称为“x.csv”
,这取决于您希望传递输入参数的方式,您可以使用以下函数之一
要传递引用的参数,请执行以下操作:
library(ggplot2)
library(rlang)
func.plot_quoted <- function(df, z){
df %>%
ggplot(aes(!!sym(z))) +
geom_histogram(aes(y =..density..),
binwidth = 0.004,
col="red",
fill="green",
alpha=.2) +
geom_density(col=2) +
labs(title="title", x=z, y="vertical axis")
}
并传递未引用的参数
func.plot_unquoted <- function(df, z){
df %>%
ggplot(aes({{z}})) +
geom_histogram(aes(y =..density..),
binwidth = 0.004,
col="red",
fill="green",
alpha=.2) +
geom_density(col=2) +
labs(title="title", x={{z}}, y="vertical axis")
}
您需要使用。您可以通过执行
df$new\u var来解决此问题。我尝试了这些函数,它们可以绘制图形,但无法成功引用引号中的参数。@NonSleeper我不确定您在这里想做什么?你能举个例子吗?我的意思是当我实现你的函数时,我可以得到图形。但是,x标签仍然显示为“z”,而不是“cyl”。@NonSleeper ohh..我错过了。我已经更新了答案,它现在应该适用于两个版本。
func.plot_quoted(mtcars, "cyl")
func.plot_unquoted <- function(df, z){
df %>%
ggplot(aes({{z}})) +
geom_histogram(aes(y =..density..),
binwidth = 0.004,
col="red",
fill="green",
alpha=.2) +
geom_density(col=2) +
labs(title="title", x={{z}}, y="vertical axis")
}
func.plot_unquoted(mtcars, cyl)