R 来自用户交互代码的意外NA
我正在努力学习R编程,我需要一些帮助。我正在尝试获取用户输入,并检查该数字是偶数还是奇数R 来自用户交互代码的意外NA,r,R,我正在努力学习R编程,我需要一些帮助。我正在尝试获取用户输入,并检查该数字是偶数还是奇数 user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: "))) if ((userinput %% 2) == 0) { print(paste(user_input,"is Event")) } 但我收到一条错误信息: 错误消息: [1] “不适用是事件” 为什么不提示用户输入一个数字 “NA是事件”是
user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: ")))
if ((userinput %% 2) == 0)
{
print(paste(user_input,"is Event"))
}
但我收到一条错误信息:
错误消息:
[1] “不适用是事件”
从
?读线:
readline从终端读取一行(在交互使用中)
那么,当您运行代码时会发生什么情况:
user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: ")))
是不是readline
立即打印提示,然后读取脚本的下一行
if ((user_input %% 2) == 0)
好像这是用户的输入。这意味着如果未计算,则执行,然后执行下一条语句
print(paste(user_input,"is Event"))
马上执行。由于user\u输入
是NA
打印的是NA是事件
您可以看到,如果将脚本更改为
user_input = suppressWarnings(as.integer(readline(prompt="Enter a number: ")))
2
if ((user_input %% 2) == 0)
{
paste(user_input,"is Event")
}
1)你的第二行有输入错误;将userinput
更改为user_input
(或使它们一致)2。)当我以交互方式运行第一行时,它会提示输入一个数字-但是如果您同时以交互方式运行整个过程,它不会等待您,并会将NA分配给用户_input。您需要阅读更多关于如何使用readline
函数的信息。许多在命令提示符下运行良好的东西在以交互方式运行时运行不好(无需修改)。3.“是事件”部分就是你写的。@HFBrowning,你应该提出这个作为答案。顺便说一句,你刚刚击败我:)我只是在学习:)。谢谢你的评论:)谢谢你清晰详细的解释。你太棒了:)