中断运行 R 脚本的函数是什么?
What function to interrupt the running R script?
我是 R 的初学者。我希望能够在条件为真时中断当前 运行 脚本。我发现最接近的是 ps_kill
函数,它使 Rstudio 崩溃。
df <- data.frame(one = c(1,2,NA,4,NA), two = c(NA,NA,8,NA,10))
if (sum(is.na(df)) > 3)
{
ps_kill(p = ps_handle())
}
有没有我可以用来替换 ps_kill
的函数来中断脚本而不会使 Rstudio 崩溃?
如果您有很长的 运行 代码,您可以尝试使用 R studio 中控制台面板右上角的 'Stop' 按钮。
如截图所示。
https://prnt.sc/1txafh0
希望这就是您要找的!
如果您 运行 使用 Rscript 或源代码,stop
函数将抛出错误并有效地终止您的脚本。但请记住,这将因错误而终止。例如:
# A function that will throw an error and quit
test <- function() {
print("This is printed")
stop()
print("this is not printed")
}
test()
请注意,您可以通过将代码包装在 try 调用中来从错误抛出代码中恢复:
# This will not throw an error and will not print the second sentence
try(test(), silent = TRUE)
如果您真的想关闭 R 而不仅仅是完成脚本,另一种解决方案是使用函数 q
。这是不可恢复的(它会关闭 R 会话)。
我希望这能回答你的问题!
stop()
函数 returns 如果调用会出错,所以你可以使用它。唯一的技巧是,如果您在交互模式下使用它,则需要将所有要跳过的代码包装在一组大括号中,例如
df <- data.frame(one = c(1,2,NA,4,NA), two = c(NA,NA,8,NA,10))
{
if(sum(is.na(df)) > 3) stop("More than three NAs")
print("don't run this")
}
# Error: More than three NAs
注意大括号包括打印行,否则 stop 只会继续 运行 导致错误的行之后的代码,例如
if(sum(is.na(df)) > 3) stop("More than three NAs")
# Error: More than three NAs
print("don't run this")
# [1] "don't run this"
如果您 运行 处于交互模式(), stopApp 应该终止进程而不会导致错误。
我是 R 的初学者。我希望能够在条件为真时中断当前 运行 脚本。我发现最接近的是 ps_kill
函数,它使 Rstudio 崩溃。
df <- data.frame(one = c(1,2,NA,4,NA), two = c(NA,NA,8,NA,10))
if (sum(is.na(df)) > 3)
{
ps_kill(p = ps_handle())
}
有没有我可以用来替换 ps_kill
的函数来中断脚本而不会使 Rstudio 崩溃?
如果您有很长的 运行 代码,您可以尝试使用 R studio 中控制台面板右上角的 'Stop' 按钮。
如截图所示。 https://prnt.sc/1txafh0
希望这就是您要找的!
如果您 运行 使用 Rscript 或源代码,stop
函数将抛出错误并有效地终止您的脚本。但请记住,这将因错误而终止。例如:
# A function that will throw an error and quit
test <- function() {
print("This is printed")
stop()
print("this is not printed")
}
test()
请注意,您可以通过将代码包装在 try 调用中来从错误抛出代码中恢复:
# This will not throw an error and will not print the second sentence
try(test(), silent = TRUE)
如果您真的想关闭 R 而不仅仅是完成脚本,另一种解决方案是使用函数 q
。这是不可恢复的(它会关闭 R 会话)。
我希望这能回答你的问题!
stop()
函数 returns 如果调用会出错,所以你可以使用它。唯一的技巧是,如果您在交互模式下使用它,则需要将所有要跳过的代码包装在一组大括号中,例如
df <- data.frame(one = c(1,2,NA,4,NA), two = c(NA,NA,8,NA,10))
{
if(sum(is.na(df)) > 3) stop("More than three NAs")
print("don't run this")
}
# Error: More than three NAs
注意大括号包括打印行,否则 stop 只会继续 运行 导致错误的行之后的代码,例如
if(sum(is.na(df)) > 3) stop("More than three NAs")
# Error: More than three NAs
print("don't run this")
# [1] "don't run this"
如果您 运行 处于交互模式(