在函数运行期间使用参数值作为R中的变量名

时间:2014-08-20 15:13:43

标签: r namespaces environment-variables assign

如何创建一个名称与我传递给函数的参数的字符值相同的变量?以下行不起作用。我是否必须首先使用paste0(),parse()组合表达一个表达式,并最终使用eval()进行评估?

f< - function(Argument.to.carry.the.value.that.I.want.to.use.as.name.of.variable.to.be.created){

as.name(Argument.to.carry.the.value.that.I.want.to.use.as.name.of.variable.to.be.created)= my.gene.list

}

F(the.name)

贝斯茨,

Allen Chiu

PS:我真正想做的是在函数运行期间创建一个全局变量,如:

de.limma =函数(路径名){

      ……………

.GlobalEnv $“由path_name参数”= de_gene_list

指示

}

2 个答案:

答案 0 :(得分:1)

这是FAQ 7.21。

答案中最重要的部分是它说不要这样做。全局变量很危险,可能导致很难发现错误。

如果你需要存储一个变量,以便其他函数可以找到它(人们使用全局变量的常见原因),那么创建一个所有函数都可以引用的特殊环境会更清晰:

mynewenv <- new.env()

fun1 <- function(name) {
  mynewenv[[name]] <- "testing"
}

fun2 <- function(name) {
  print( mynewenv[[name]] )
}

答案 1 :(得分:0)

你可以使用assign,envir = .GlobalEnv