【问题标题】:R not responding request to interrupt stop processR没有响应中断停止过程的请求
【发布时间】:2017-08-26 05:10:11
【问题描述】:

时不时地我必须运行一个需要大量时间的函数,并且我需要在它完成之前中断处理。为此,我单击 Rstudio 控制台顶部的红色“停止”标志,通常会在下面返回此消息:

R 没有响应您中断处理的请求,因此要停止当前操作,您可能需要完全终止 R。

终止 R 将导致您的 R 会话立即中止。活动计算将被中断,未保存的源文件更改和工作区对象将被丢弃。

你想现在终止 R 吗?

问题是我单击“否”,然后 Rstudios 似乎完全冻结了。我想知道其他人是否面临类似的问题,以及是否有任何方法可以解决这个问题。

有没有办法快速停止 Rstudio 中的进程而不会丢失工作区中的对象?

【问题讨论】:

  • 它偶尔会变得功能失调......我认为这可能并不少见。我曾在 Mac、PC 和 Linux 机器上发生过这种情况。我在重启前使用任务管理器清除它。
  • 在处理大型数据集时,“偶尔”会痛... ;) 我每天都会遇到几次这个问题。 data.table 虽然有点帮助(据我所知使用 C++,但速度非常快)

标签: r rstudio


【解决方案1】:

很遗憾,RStudio 目前在以下几种情况下无法中断 R:

  1. R 正在执行一个外部程序(例如你不能中断system("sleep 10")),

  2. R 正在执行(例如)一个 C/C++ 库调用,它不为 R 提供检查中断的机会。

在这种情况下,唯一的选择是强行终止 R 进程 - 希望这在 RStudio 的未来迭代中可能会发生变化。


编辑:RStudio v1.2 现在应该可以更好地处理这些上下文中的中断。

【讨论】:

  • 这是否意味着它会尽早停止,还是根本不会停止?例如,如果我在 R 执行 C/C++ 库调用时尝试停止它,它会在它完成后立即停止,还是会继续完成它被赋予的任何其他任务?如果是前者,那似乎是所有世界中最糟糕的,因为不可停止的组件可能是最长的时间部分 - 所以如果你按下停止并且它不起作用,你可能会等待几乎和你一样多的时间'd just let it run - 但没有输出。
  • 一旦 R 事件循环有机会运行,它就会停止,并发现中断标志已设置。我同意这根本不理想:-/
  • 不幸的是,很多 R 代码实际上是 C 或 Fortran 代码,而 Ctrl+C 通常不起作用。即使像使用 rect() 绘制单个矩形这样的事情也会调用 C 代码并且无法停止。这是一个严重的设计限制。
【解决方案2】:

当 R 不在 R 中工作并且正在调用外部库调用时,可能会发生这种情况。唯一的选择是关闭项目窗口。幸运的是,在再次打开 RStudio 时,包括对象在内的未保存更改会被保留。

【讨论】:

  • 您确定对象吗?我可以保留未保存的代码,但在该按钮上单击“是”后环境为空。
  • @Jakob +1 同样的问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多