你不能只是让你当前的会话香草,但你可以像这样从 R 中开始一个新的香草 R 会话
> .Last <- function() system("R --vanilla")
> q("no")
我认为您可能会按原样使用上述方法遇到问题,因为在 R 重新启动后,您的脚本的其余部分将不会执行。使用以下代码,R 将.Last
在退出之前运行。 .Last
将告诉它在不读取站点文件或环境文件的情况下重新启动,并且不打印启动消息。重新启动后,它将运行您的代码(以及进行一些其他清理)。
wd <- getwd()
setwd(tempdir())
assign(".First", function() {
#require("yourPackage")
file.remove(".RData") # already been loaded
rm(".Last", pos=.GlobalEnv) #otherwise, won't be able to quit R without it restarting
setwd(wd)
## Add your code here
message("my code is running.\n")
}, pos=.GlobalEnv)
assign(".Last", function() {
system("R --no-site-file --no-environ --quiet")
}, pos=.GlobalEnv)
save.image() # so we can load it back when R restarts
q("no")