【问题标题】:Use argument value as variable name in R during function run在函数运行期间使用参数值作为 R 中的变量名
【发布时间】:2014-10-14 00:41:34
【问题描述】:

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

f

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)

最佳,

艾伦·邱

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

de.limma=function(path_name){

      ……………

.GlobalEnv$”由 path_name 参数”=de_gene_list

}

【问题讨论】:

    标签: r namespaces environment-variables assign


    【解决方案1】:

    这是常见问题解答 7.21。

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

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

    mynewenv <- new.env()
    
    fun1 <- function(name) {
      mynewenv[[name]] <- "testing"
    }
    
    fun2 <- function(name) {
      print( mynewenv[[name]] )
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用分配,与 envir=.GlobalEnv

      【讨论】:

        猜你喜欢
        • 2021-05-27
        • 2021-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        • 1970-01-01
        • 2014-12-28
        • 1970-01-01
        相关资源
        最近更新 更多