Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R跳过循环中的readline_R_Loops_Readline - Fatal编程技术网

R跳过循环中的readline

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

我试图在for循环中包含readline命令,后面跟着其他代码。使用下面的代码,我希望R请求输入三次,但是在循环被视为响应之一后,我只有机会给出两次响应,这不是我想要或期望的。我尝试包含一个while循环,以“强制”R停止执行,直到它得到用户的响应,但这似乎不起作用。如有任何建议,将不胜感激

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中运行此程序,但它给出了相同的问题。循环下面的代码将在响应中考虑。任何防止此情况发生的建议都将不胜感激。