如何创建一个名称与我传递给函数的参数的字符值相同的变量?以下行不起作用。我是否必须首先使用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
指示}
答案 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