Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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
带有readline的Switch语句,并根据用户输入处理不同类类型的错误消息_R_Switch Statement - Fatal编程技术网

带有readline的Switch语句,并根据用户输入处理不同类类型的错误消息

带有readline的Switch语句,并根据用户输入处理不同类类型的错误消息,r,switch-statement,R,Switch Statement,我想让用户选择从1到4的任何选项,然后使用switch语句相应地传输流。 我遵循了这一点 interactive() num1不要使用noquote,使用作为.integer@JuliánUrbano谢谢。我使用as.numeric进行计算,但忘记检查as.integer。而且“=”在这里对我不起作用,所以我用“==”代替,现在就好了。谢谢。@JuliánUrbano,如果我输入特殊字符或整数以外的值,它会显示警告消息,如“警告消息:在eval(expr,envir,enclose):强制引入

我想让用户选择从1到4的任何选项,然后使用switch语句相应地传输流。 我遵循了这一点

interactive()

num1不要使用
noquote
,使用
作为.integer
@JuliánUrbano谢谢。我使用as.numeric进行计算,但忘记检查as.integer。而且“=”在这里对我不起作用,所以我用“==”代替,现在就好了。谢谢。@JuliánUrbano,如果我输入特殊字符或整数以外的值,它会显示警告消息,如“警告消息:在eval(expr,envir,enclose):强制引入的NAs”……如何显示正确的错误消息。与代码中的默认语句类似。
开关
对数字和字符输入的工作方式不同。您需要更仔细地阅读帮助页。这是一个基本函数,因此,如果希望错误消息不同,则需要包装调用,并自行暂停测试和消息。@BondedDust…谢谢。这对我来说太专业了。但这就是我认为在这种情况下有效的方法……我可以检查num1的类,如果它是数值的,那么我只会将它传递给switch,可能我需要将switch语句包装在函数调用中……我会处理它……听起来好吗?
interactive()
num1 <-readline("Select any one of the options")
num <- noquote(num1)
switch(num, 
1={
  cat('You have selected option 1')
},
2={
  print('You have selected option 2')    
},
3={
  #Option 3
  print('You have selected option 3')    
},
4={
  #Option 4
  print('You have selected option 4')    
},
{
   print('dah make your mind,look at the options again')
}
)