Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将变量作为aes引用传递_R_Ggplot2 - Fatal编程技术网

R 将变量作为aes引用传递

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

我正在构建一个循环,将一系列绘图打印到R中的独立文件中。除了我尝试将变量传递给ggplot中的aes时,geom_直方图认为该值现在是离散的之外,其他一切都可以工作

所以这是可行的:

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"?