如何保存未被rm删除的变量(list = ls())

Roc*_*nce 4 r environment-variables

我想在R中保存一个不会被删除的变量 rm(list=ls())

我认为这是可能的,例如安装的功能和包中的数据不会被删除.

编辑:一种可能是为此R会话设置一个env变量.我试过Sys.setenv(ENV_VAR = 1)Sys.getenv(ENV_VAR)返回错误.

(我在Windows 32bits,R 2.12.1)

Tom*_*mmy 6

首先,要获取环境变量,您需要在其周围加上引号:

Sys.setenv(ENV_VAR = 1)
Sys.getenv("ENV_VAR")
Run Code Online (Sandbox Code Playgroud)

其次,正如Chase所说,新环境是可行的方法 - 但你必须附上它:

e <- new.env()
e$foo <- 42
attach(e, name='myvars')
rm(list=ls()) # Remove all in global env
foo # Still there!
Run Code Online (Sandbox Code Playgroud)

......并分离它:

detach('myvars')
Run Code Online (Sandbox Code Playgroud)