R 将变量作为aes引用传递
我正在构建一个循环,将一系列绘图打印到R中的独立文件中。除了我尝试将变量传递给ggplot中的aes时,geom_直方图认为该值现在是离散的之外,其他一切都可以工作 所以这是可行的:R 将变量作为aes引用传递,r,ggplot2,R,Ggplot2,我正在构建一个循环,将一系列绘图打印到R中的独立文件中。除了我尝试将变量传递给ggplot中的aes时,geom_直方图认为该值现在是离散的之外,其他一切都可以工作 所以这是可行的: epdSimpleName <- c("API", "TI", "CE") for (epdName in epdSimpleName) { plot <- ggplot(simpledf, aes(x=API)) plot <- plot + geom_histogram(binwid
epdSimpleName <- c("API", "TI", "CE")
for (epdName in epdSimpleName) {
plot <- ggplot(simpledf, aes(x=API))
plot <- plot + geom_histogram(binwidth=5)
print(plot)
}
感谢您的帮助/指导 在这种情况下,错误消息令人困惑,并且不能很好地提示错误所在 工作的示例将美学指定为
aes(x=API)
。重要的是API
不带引号。实际上不起作用的示例将美学指定为aes(x=“API”)
(不明确,但循环循环时会发生这种情况)
因此,有必要采取“API”
并“取消引用”它。您可以通过实现这一点!!rlang::sym(“API”)
库(“tidyverse”)
数据(钻石)
情节完美,谢谢!一个后续问题。我怎么能自己发现呢?我知道引号是问题所在,但找不到!!rlang::sym(var)
解决方案。再次感谢!你太棒了!这是一个很大的话题。开始学习tidy评估和Quosure的一个地方是小插曲“使用dplyr编程”:。(即使理解这些术语的含义也需要一些学习。)我还发现这篇关于常见转换的博客摘要很有用:(你可以在标题“从角色到名字”下找到这个特殊的转换。)谢谢!我来看看!
epdSimpleName <- c("API", "TI", "CE")
for (epdName in epdSimpleName) {
plot <- ggplot(simpledf, aes(x=epdName))
plot <- plot + geom_histogram(binwidth=5)
print(plot)
}
Error: StatBin requires a continuous x variable: the x variable is discrete. Perhaps you want stat="count"?