python rpy2模块:刷新全局R环境

时间:2011-11-16 00:08:21

标签: r global environment rpy2

rpy2的文档指出robjects.r对象可以访问R全局环境。有没有办法将这个全球环境“刷新”到其初始状态?

我希望能够将全局环境恢复到导入rpy2.robjects模块但尚未使用的状态。通过这种方式,我不必担心长时间运行的作业或其他意外的副作用导致内存泄漏。是的,刷新环境可能会引入不同类型的错误,但我相信在我的情况下它将是一个胜利。

2 个答案:

答案 0 :(得分:2)

如果您只是想清除.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)   

答案 1 :(得分:0)

只有/ one /&#34;全球环境&#34;在R;当R开始时它被初始化。你可以清除其成员,就像Josh指出的那样,但是如果你碰巧需要它,这可能意味着你可以更好地实现新环境,并在它们之间切换或在不再需要时删除它们。