为什么在条件语句中使用两个 <= 不起作用?

Why doesn't using two <= in a conditional statement work?

我正在写一个简单的条件结构:

numero = as.integer(readline(prompt="Elige un número cualquiera: "))

if(numero < 0){
  paste0("El número", numero, "es negativo.")
} else {
  if(0 <= numero <= 100){
     paste0("El número", numero, "está entre 0 y 100.")
  } else {
     paste0("El número", numero, "es mayor que 100.")
  }
}

然而,当运行这段代码出现错误时:

Error in parse(text = x, srcfile = src): <text>:8:18: unexpected '<='
7: } else {
8:   if(0 <= numero <=                 ^

为什么会这样?

这不是数学。你需要明确。

尝试if(0 <= numero && numero <= 100)

此外,我建议使用向量化 ifelse()

您在 if() 中的条件编码不正确。此外,在这种情况下,要在句子中的字符串之间制作一个 space,paste 优于 paste0

这是一个替代修复方法:

numero = as.integer(readline(prompt="Elige un número cualquiera: "))
if(numero < 0){
    paste("El número", numero, "es negativo.")
} else {
    if(numero >=0 & numero <= 100){
        paste("El número", numero, "está entre 0 y 100.")
    } else {
        paste("El número", numero, "es mayor que 100.")
    }
}