【问题标题】:How to use if statement in R?如何在 R 中使用 if 语句?
【发布时间】:2020-09-09 23:21:20
【问题描述】:

我习惯于 Python,以下代码可以正常工作,没有任何例外。但是,当我尝试运行命令时,我在 R 中收到以下错误。

a <- readline(prompt="Give a num between 1-10: ")
b <- readline(prompt="Give another between 11-20: ")

if((1 <= a <= 10) & (11 <= b <= 20)) {
  a <- a
  b <- b
} else {
  a <- readline(prompt="Give a correct num between 1-10: ")
  b <- readline(prompt="Give a correct num between 11-20: ")
}

错误:

【问题讨论】:

  • 你不能做 a

标签: r if-statement relational-operators


【解决方案1】:

1) 尽管1 &lt;= a &lt;= 10 在逻辑上看起来是正确的,但它在 R 中不是有效的语法。您需要单独使用1 &gt;= a &amp; a &lt;= 10

2) readline 的输出是一个字符,您可能需要包装 as.numeric 以获取一个数字。

3) 不需要再次分配ab,如果条件是TRUE,它已经存在。

所以总结一下你可以这样做:

a <- as.numeric(readline(prompt="Give a num between 1-10: "))
b <- as.numeric(readline(prompt="Give another between 11-20: "))

if(a < 1 | a > 10) 
   a <- as.numeric(readline(prompt="Give a correct num between 1-10: "))
if(b < 11 | b > 20))
   b <- as.numeric(readline(prompt="Give a correct num between 11-20: "))

【讨论】:

    猜你喜欢
    • 2015-04-07
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多