在R中重命名全局变量

时间:2015-01-31 05:51:13

标签: r

我正在尝试使用for循环重命名全局变量。

我没有一个可重复的例子,因为这个问题涉及非常广泛的事情。

第一个问题是我正在处理必须使用data.tables的大型数据集。我想在我的全局环境中重命名(使用for循环)所有data.tables。

第一个问题是如何重命名全局环境变量。

其次,如何重命名某个类类型的全局变量?

介意,我想在for循环中执行此操作,以便它可以重命名可变长度的列表。

1 个答案:

答案 0 :(得分:0)

R没有重命名的概念,但您可以将对象绑定到新的 命名并删除旧名称。由于data.table对象使用引用,因此 不会导致复制基础数据,就像其他任务一样。

# get the names of the variables in the global environment
globalVariables <- ls(envir=.GlobalEnv)

for(.name in globalVariables){
    x <- get(.name,envir=.GlobalEnv)
    if(inherits(x,'data.table')){
        # obviously you want a better newName than 'foo'
        newName <- 'foo'
        # bind the value x to the new name in the global environment
        assign(newName,x,envir=.GlobalEnv)
        # delete the binding to the old name in the global environment
        rm(list=.name,envir=.GlobalEnv)
    }
}