如何在 R 中使用 if 语句?

How to use if statement in R?

我习惯了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: ")
}

错误:

1) 尽管 1 <= a <= 10 在逻辑上看起来是正确的,但它不是 R 中的有效语法。您需要单独使用 1 >= a & a <= 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: "))