我正在尝试使用for循环重命名全局变量。
我没有一个可重复的例子,因为这个问题涉及非常广泛的事情。
第一个问题是我正在处理必须使用data.tables的大型数据集。我想在我的全局环境中重命名(使用for循环)所有data.tables。
第一个问题是如何重命名全局环境变量。
其次,如何重命名某个类类型的全局变量?
介意,我想在for循环中执行此操作,以便它可以重命名可变长度的列表。
答案 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)
}
}