如何在RStudio中终止运行中的长脚本而不中断整个R会话
RStudio批量运行脚本中途完全终止的解决方法
方法1:用大括号包裹待运行的整块代码
这是成本最低的临时解决方案,把需要批量运行的代码全部放在一对大括号{}中,此时整段代码会被识别为单个代码块:
{ Sys.sleep(5) Sys.sleep(5) Sys.sleep(5) Sys.sleep(5) }
全选运行后中途按Esc,即可直接终止整个代码块的执行,不会触发后续代码运行,也不会关闭现有R会话,所有已加载的包和变量都会保留。
方法2:升级RStudio到最新稳定版
你遇到的是RStudio 1.3.952版本的已知缺陷:全选多行逐行运行时,Esc只能终止当前正在执行的单条命令,无法清空待执行的命令队列。该问题在后续所有稳定版中都已修复,升级后全选多行运行时按Esc可直接清空整个运行队列,完全终止脚本。
方法3:包装为临时函数运行
如果不想修改现有代码结构,也可以把待运行的代码封装为一个临时函数执行:
temp_exec <- function() { Sys.sleep(5) Sys.sleep(5) Sys.sleep(5) Sys.sleep(5) } temp_exec()
触发终止时会直接停止整个函数的运行逻辑,同样不会影响现有会话环境。
紧急应对方案(已触发运行且无包裹的场景)
如果已经全选运行了未包裹的代码,可快速连续按Esc+控制台清空按钮,赶在下一行代码启动前清空控制台的待执行队列,适合代码单条运行时间较长的场景。
内容的提问来源于stack exchange,提问作者Daycent
相关产品推荐
相关产品推荐

