gpt4 book ai didi

r - 如何在按下某个键之前暂停代码执行?

转载 作者:行者123 更新时间:2023-12-04 20:29:00 27 4
gpt4 key购买 nike

我试图让 R 暂停代码执行,让用户查看一些先前的控制台输出,以验证文件链接是否已正确匹配(使用 RegEx 将文件名与其各自的对象匹配)。

从其他一些答案中,我想出了:

readline(prompt="Press [enter] to continue or [esc] to exit")

作为一个独立的代码行,它按预期工作,但是一旦我在它下面添加代码,并将整个块发送到控制台,它就会直接通过 readline 运行。不停地调用:
readline(prompt="Press [enter] to continue or [esc] to exit")

x <- 1
y <- 2

有没有办法让 R 在这里真正暂停?

我也试过包装 readline在一个函数中,但它仍然不起作用
pause <- function(){
p <- readline(prompt="Press [enter] to continue or [esc] to exit")
return(p)
}

pause()

x <- 1
y <- 2

编辑:

如果我通过 source() 调用脚本, readline确实工作正常。有没有办法在不这样做的情况下获得这种行为?

最佳答案

通过“将整个块发送到控制台”,这听起来像是将代码复制粘贴到正在运行的 R 实例中。

如果你这样做,R 将按照它接收的顺序运行每一行,一旦它接收到它。如果任何一行试图接受输入,该输入将来自您复制粘贴的任何内容 .所以如果你复制粘贴这个:

readline(prompt="Press [enter] to continue or [esc] to exit")

x <- 1
y <- 2

R 将首先读取并运行第一行。第一行将运行并读取下一行输入(此处为空行)。然后 R 将返回并读取并执行其他两行。

在运行任何代码之前,您需要将代码完全输入到 R 中。尝试将整个事情包装在一个函数中:
dostuff <- function(){
readline(prompt="Press [enter] to continue or [esc] to exit")
x <- 1
y <- 2
}
dostuff()

关于r - 如何在按下某个键之前暂停代码执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50992757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com