我正在尝试在 ggplot2 中运行此代码。它运行得很好。

p <- ggplot(diamonds, aes(x= depth , y = price), color = cut))
p + geom_point()

现在我想使用变量传递 xy 以便我可以在 for 循环中使用它们。
var1  <- colnames(diamonds)
var1 是具有以下变量的向量:
[1] "carat"   "cut"     "color"   "clarity" "depth"   "table"
 [7] "price"   "x"       "y"       "z"

我使用以下公式,它应该等效于上面的 ggplot2
p <- ggplot(diamonds, aes(x= var1[5] , y = var1[7]), color = cut))
p + geom_point()

这次 var1[5] 被视为变量,var1[7] 被视为另一个变量,而不是将它们解析为深度和价格。

有没有办法。我使用了粘贴功能,但看起来不起作用。

最佳答案

就像评论中提到的 bunk 一样: aes_string 是要走的路:

library(ggplot2)
var1  <- colnames(diamonds)
p <- ggplot(diamonds, aes_string(x= var1[5] , y = var1[7]), color = cut)
p + geom_point()

关于R:在 ggplot2 中使用变量名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33492052/

10-13 09:10