将函数中的字符串参数转换为R中的变量名

时间:2017-11-20 10:39:54

标签: r

我有以下功能:

myfunction <- function(arg1){
  arg1 <- m$value
  coverage_plot <- ggplot(data=m, aes(x=Time, y=arg1, group=Technique, color=Technique)) + geom_line()

我想传递字符串参数(例如"Age")并将m$value分配给Age。目前,在图中,y轴标签显示为arg1,应为Age

我考虑过使用as.name函数将字符串参数转换为变量名:

var <- as.name(arg1)
var <- m$value
coverage_plot <- ggplot(data=m, aes(x=Time, y=var, group=Technique, color=Technique)) + geom_line()

我最后遇到了同样的问题,var显示在情节而不是Age

我还尝试将assign函数用作assign(arg1,m$value),但效果不佳。

所以问题是如何将传递的参数转换为可以在y轴标签中显示的变量?

2 个答案:

答案 0 :(得分:2)

您可以使用aes_string函数并提供如下: aes_string(x="Time", y=var, group="Technique", color="Technique")

我认为"Time""Technique"m中列的名称,而不是变量。

答案 1 :(得分:0)

我的问题的答案非常简单。解决方案是将y轴标签更改为参数字符串:

myfunction <- function(arg1){
  yValues <- m$value
  the_plot <- ggplot(data=m, aes(x=Time, y=yValues, group=Technique, color=Technique)) + geom_line() + ylab(arg1)