【发布时间】:2020-05-29 07:06:53
【问题描述】:
我正在尝试编写一个看起来应该非常简单的函数,但我遇到了问题。我想编写一个包含三个参数的函数:数据框、x 轴变量和 y 轴变量。基于这些,我希望它返回一个散点图,其中可以更改 x 轴变量和 y 轴变量。这是我写的非常基本的函数:
scatter_plot <- function(dataframe, x_input, y_input) {
plot <- ggplot(data = dataframe) +
geom_point(mapping = aes(x = x_input, y = y_input),
)
}
为了重现性,请考虑ggplot2 包中的数据集midwest。我写的代码在运行时不会产生错误,但是当我尝试向其中传递参数时,例如
scatter_plot(midwest, percollege, percpovertyknown)
函数返回
"FUN(X[[i]], ...) 中的错误:找不到对象 'percollege'"
似乎它无法识别参数中的变量,但我已经使用该函数有一段时间了,但我似乎无法弄清楚。有人可以帮我解决这个问题,以便我的功能正常工作吗?
【问题讨论】:
-
这能回答你的问题吗? Use of ggplot() within another function in R
-
我经常使用
aes_string,这也应该是我上面贴的帖子中的答案之一。我认为这可以很好地融入您现在拥有的代码中。 -
@4rj4n 显然,
aes_string现在已软弃用:ggplot2.tidyverse.org/reference/aes_.html -
啊,谢谢。我没有注意到这一点。所以这里推荐
aes_,我明白了,它也可以带字符串。 -
@4rj4n 不,本网站上没有提到任何功能。建议您在此处或tidyeval.tidyverse.org/dplyr.htmltidyeval.tidyverse.org/dplyr.html的答案中看到