在Rstudio中重新启动R.

时间:2013-03-27 18:37:31

标签: r rstudio

我正在尝试使用system2()从R中调用一个简单的python脚本。我已经阅读了一些我发现含糊不清的信息说如果使用'太多'内存,它将无法正常工作。

如果我加载一个大型数据集并使用其中的一些信息作为参数传递给system2(),那么只有在我调用Rstudio中手动点击“Restart R”时它才有效。

我想要的是什么:

df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
for(arg in args_vec){
    system2('python', args)
}

这不会按原样运作。简单地传递for循环。

我需要什么:

df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
###something that 'restarts' R
for(arg in args_vec){
    system2('python', args)
}

This answer并不能得到我想要的东西。也就是说,它在Rstudio中对我不起作用,并且它称为“系统”(在这种情况下它表现出与“system2”相同的问题)。事实上,当我把上面引用的答案放在我的Rprofile.site文件中时,它只是立即关闭了rstudio:

我尝试将该建议作为正常功能(而不是使用“makeActiveBinding”,并且它没有完全奏效。

##restart R in r session  -- doesn't work
makeActiveBinding("refresh", function() { system("R --save"); q("no") }, .GlobalEnv)

##nor did this:
refresh <- function() { system("R --save"); q("no") }

我尝试了上面这两个选项的多种变体,但这对于一个简单的问题感觉很长。关于启动过程还有很多我还不了解,“makeActiveBinding”有点神秘。有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:55)

在Rstudio中,您可以通过以下方式重新启动R会话:

command/ctrl + shift + F10 

您也可以使用:

.rs.restartR()

答案 1 :(得分:8)

RStudio有这个没有文档的rs.restartR(),应该这样做:重启R。

但是,它不会卸载已加载的软件包,也不会清理环境,因此我对是否重新启动R有一些疑问。

答案 2 :(得分:0)

您是否尝试在apply函数中嵌入函数调用,而不是for循环?

我有一些代码片段在for循环中运行系统内存完全与apply一起运行。这可能有帮助吗?

答案 3 :(得分:0)

如果使用RStudio,请使用菜单项“会话”>“重新启动R”或相关的键盘快捷键Ctrl+Shift+F10(对于Windows和Linux)或Command+Shift+F10(对于Mac OS)。其他键盘快捷键使您可以轻松地从中断的地方重新开始开发,例如说“重新运行所有代码,直到此处”:

在R脚本中,使用Ctrl+Alt+B(Windows和Linux)或Command+Option+B(Mac OS) 在R降价中,使用Ctrl+Alt+P(在Windows和Linux中)或Command+Option+P(在Mac OS中) 如果从外壳运行R,请使用Ctrl+Dq()退出,然后重新启动R。