声明变量而不将其注册到环境中

Dan*_*iel 2 scope r environment-variables

在一些R脚本中,我在for循环中使用了一些虚拟变量.

变量本身没有用途,所以我根本不需要它.

例如 :

database = read.csv("data/somefile.csv")    
for (i in 1:ncol(database)) {
    name <- names(database)[i]
    if (name %in% some_vector) {
        label(database[, .i]) <- some_function(databas$somecolumn)
    }
}
Run Code Online (Sandbox Code Playgroud)

在R Studio中,"Global Environement"选项卡会跟踪变量iname(并给出它具有的最后一个值),尽管它们根本没有用处.

是否有任何优雅的方式来声明我的价值,以便它不会在全球环境中被跟踪?

Hon*_*Ooi 5

用于local满足您所有的工作区卫生需求.

foo <- local({
    x <- 0
    for(i in 1:nrow(mtcars))
        x <- x + mtcars$mpg[i]
    x
})
Run Code Online (Sandbox Code Playgroud)

foo现在包含计算的结果,和临时变量ix被丢弃.

  • @DanChaltiel使用Frank的解决方案,该变量仍然存在于全局环境中.它只是没有显示. (4认同)