rpy2 的文档指出 robjects.r 对象可以访问 R 全局环境。有没有办法将这个全球环境“刷新”到它的初始状态?
我希望能够将全局环境恢复到导入 rpy2.robjects 模块但尚未使用时的状态。通过这种方式,我不必担心长时间运行的作业会出现内存泄漏或其他意外副作用。是的,刷新环境可能会引入不同类别的错误,但我相信在我的情况下这将是一场胜利。
rpy2 的文档指出 robjects.r 对象可以访问 R 全局环境。有没有办法将这个全球环境“刷新”到它的初始状态?
我希望能够将全局环境恢复到导入 rpy2.robjects 模块但尚未使用时的状态。通过这种方式,我不必担心长时间运行的作业会出现内存泄漏或其他意外副作用。是的,刷新环境可能会引入不同类别的错误,但我相信在我的情况下这将是一场胜利。
将您的问题从字面上理解为它所说的内容,如果您只想清除.GlobalEnv
,则可以用一行来完成:
rm(list = ls(all.names=TRUE))
该all.names=TRUE
位是必需的,因为 vanilla 不返回某些对象名称ls()
。例如:
x <- rnorm(5)
ls()
# [1] "x"
# Doesn't remove objects with names starting with "."
rm(list=ls())
ls(all.names = TRUE)
# [1] ".Random.seed"
# Removes all objects
rm(list = ls(all.names=TRUE))
ls(all.names = TRUE)
# character(0)
R中只有/one/“全局环境”;它在 R 启动时被初始化。正如 Josh 指出的那样,您可以清除其成员,但如果您碰巧需要它,这可能意味着您最好实例化新环境并在它们之间切换或在不再需要时删除它们。