通过字符串替换将参数传递给函数

时间:2014-01-03 16:08:45

标签: string r function parsing ggplot2

您如何浏览eval()parse()和其他功能沼泽?这应该是直截了当的,因此我省略了数据。

原始代码,包含数据集中的属性和图表标题的解决方法。

require(ggplot2)
ggplot(data = qs) + geom_bar(aes(x = G74_Q0005b)) + 
      ggtitle(attr(qs, "variable.labels")[grep("G74_Q0005b", names(qs))])

这是一个只传递变量名称的函数:

plot.label <- function(var){
  ggplot(data = qs) + geom_bar(aes(x = var)) + 
    ggtitle(attr(qs, "variable.labels")[grep(var, names(qs))])
  }

但显然仅var是不够的,我不是程序员。

可能相关吗?

1 个答案:

答案 0 :(得分:1)

您需要使用aes_string作为美学部分。这需要一个包含字符串作为参数的变量。

plot.label <- function(var){
  ggplot(data = qs) + geom_bar(aes_string(x = var)) + 
    ggtitle(attr(qs, "variable.labels")[grep(var, names(qs))])
  }