R跳过循环中的readline
我试图在for循环中包含readline命令,后面跟着其他代码。使用下面的代码,我希望R请求输入三次,但是在循环被视为响应之一后,我只有机会给出两次响应,这不是我想要或期望的。我尝试包含一个while循环,以“强制”R停止执行,直到它得到用户的响应,但这似乎不起作用。如有任何建议,将不胜感激R跳过循环中的readline,r,loops,readline,R,Loops,Readline,我试图在for循环中包含readline命令,后面跟着其他代码。使用下面的代码,我希望R请求输入三次,但是在循环被视为响应之一后,我只有机会给出两次响应,这不是我想要或期望的。我尝试包含一个while循环,以“强制”R停止执行,直到它得到用户的响应,但这似乎不起作用。如有任何建议,将不胜感激 response <- rep(NA,3) for(i in 1:3) { while(is.na(response[i])) {response[i] <- readline("Giv
response <- rep(NA,3)
for(i in 1:3) {
while(is.na(response[i])) {response[i] <- readline("Give me a number: ") } # Ask for response
}
response
response当readline语句和后面的语句被放在花括号中时,这些语句会按顺序执行。下面的代码按预期工作
{
for(i in 1:3) { response[i] <- readline("Give me a number: ") }
response
}
{
对于(1:3中的i){response[i]在我的机器上(Win64上的r3.1.0),这正如您所期望的那样工作。您回答了自己的问题“在循环被认为是响应之一之后,我只有机会给出两倍于代码的响应”我曾尝试在R3.1.1 Win64中运行此程序,但它给出了相同的问题。循环下面的代码将在响应中考虑。任何防止此情况发生的建议都将不胜感激。