gpt4 book ai didi

r - ggplot 在函数中不起作用,以字符串形式传入变量名

转载 作者:行者123 更新时间:2023-12-02 07:59:33 29 4
gpt4 key购买 nike

我有以下简单功能,但其 ggplot 命令不起作用。当从命令行给出该命令时,该命令可以正常工作:

> testfn <- function(gdf, first, second){          
library(ggplot2)
print(ggplot(gdf, aes(first, second)) + geom_point())
}
>
> testfn(mydataf, vnum1, vnum2)
Error in eval(expr, envir, enclos) : object 'second' not found
>
> ggplot(mydataf, aes(vnum1, vnum2)) + geom_point()

> (plots graph without any error)

我尝试使用aes_string而不是aes;并且还使用x=first, y=second。事情有所改善,并绘制了一分! X 轴和 Y 轴显示与该点相关的数字作为标签。仅绘制第一行。哪里有问题。感谢您的帮助。

最佳答案

(根据我最初的建议和您的确认)

这是关于如何尝试将变量名称的字符串参数传递到 fn 中。

  • 在命令行上,ggplot(gdf, aes(first, secondary)) 可以正常工作
  • 但在你的函数内部,你还传递了first,second作为字符串变量。所以,是的,您现在需要在函数 testfn 中使用 aes_string(first,second) ,因为您现在通过字符串变量 first,second 间接传递变量名称。
  • 此外,由于变量名称 first,second 是字符串,所以在调用 fn 时确实需要引用它们。 (我不确定 ggplot 的 aes() 使用什么语言机制不需要字符串,但无论如何。使用引号。)
  • 另请参阅 R 中的 quote() 命令

关于r - ggplot 在函数中不起作用,以字符串形式传入变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382822/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com