将用户输入结合到R中的因子函数中

时间:2015-08-07 22:58:45

标签: r ggplot2

我试图弄清楚如何获取用户提供的列名以响应R中的提示并在函数因子中使用它。我们的想法是使用ggplot2创建一个脚本,该脚本允许用户轻松选择他们希望按颜色和形状编码的表中的哪个变量。
请求用户输入的代码行是:

> Color_Factor<-readline("What is the Column Heading of the Variable you would like separated by Color? ") 

您希望用Color分隔的变量的列标题是什么?覆盖率

我的问题是我无法弄清楚如何使用此输入来调用特定列以进行图形化。下面的代码创建一个颜色和单个变量“Reach”的图形。

> qplot(d13C, d15N, data=InputFile, **col=factor(Color_Factor)**, shape=factor(Functional_Group))

我在调用函数作为factor()中的初始参数的所有尝试都遇到了完全失败。我特别感兴趣的是图形用途,但我也想知道是否有一种方法可以使用变量的值而不是变量名来指定此类函数中的列。我对R来说是全新的,所以也许有一个明显的解决方案,但到目前为止我还没能在网上找到答案。 谢谢

1 个答案:

答案 0 :(得分:1)

这不是很优雅,但对ggplot2的参数的非标准评估总是让我感到困惑:

> Color_Factor<-readline("What is the Column Heading of the Variable you would like separated by Color? ") 
What is the Column Heading of the Variable you would like separated by Color? mpg

qplot( x=mtcars[, Color_Factor], wt, data=mtcars)

我使用as.namesubstituteeval尝试(并且失败了)各种语言级别的咒语,为x-argument提供一个语言元素很满意。上面的策略使用[.data.frame的容量来评估Color_Factor并将其与mtcars中的列名匹配。这个替代方案也取得了成功(因为它几乎与第一个人正在做的重复:

 qplot( x=eval(as.name(Color_Factor), mtcars), wt, data=mtcars)