来自用户交互式代码

时间:2017-05-03 15:08:35

标签: r

我正在尝试学习R编程,我需要一些帮助。我正在尝试获取用户输入并检查该数字是偶数还是奇数。

user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: ")))
if ((userinput %% 2) == 0)
  {
  print(paste(user_input,"is Event"))
}

但我收到一条错误消息:

  

错误讯息:       [1]“NA是事件”

  1. 为什么不提示用户输入号码?
  2. “NA是事件”是什么意思?

1 个答案:

答案 0 :(得分:0)

来自?readline

  

readline从终端读取一行(交互式使用)。

所以当您运行代码时会发生什么:

user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: ")))

readline立即打印提示,但随后会读取脚本的下一行

 if ((user_input %% 2) == 0)

好像是用户的输入。这意味着if没有得到评估,下一个语句

print(paste(user_input,"is Event"))

马上执行。由于user_inputNA,所打印的内容为NA is Event

您可以看到,如果您将脚本更改为

,会发生这种情况
user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: ")))
2
if ((user_input %% 2) == 0)
{
  paste(user_input,"is Event")
}