R 将用户输入转换为数字

R 将用户输入转换为数字,r,if-statement,R,If Statement,这可能是一个愚蠢的错误,但我无法理解。 以下是示例: if(K<=50 & k<=K) { cat("Message A", "\n") } else { if(K>50) { cat("Error A","\n") return(0) } else { cat("Error B","\n") return(0) } } if(K您看到此错误的原因是readline函数返回字符串

这可能是一个愚蠢的错误,但我无法理解。 以下是示例:

 if(K<=50 & k<=K) {
  cat("Message A", "\n")
 } else {
    if(K>50) {
     cat("Error A","\n")
     return(0)
    } else {
       cat("Error B","\n")
       return(0)
      }
   }

if(K您看到此错误的原因是
readline
函数返回字符串而不是数字。当R比较字符串和数字时,它会将两者转换为字符串并按字母顺序进行比较:

"9" <= 50
# [1] FALSE
"1" <= 50
# [1] TRUE

“9”我无法重现您的错误。如果我使用K@PrafullaShahi您应该将
readline
中的(文本)输入转换为
as.numeric
@josilber将您的评论作为答案发布:)@PrafullaShahi您应该学习一些更好的调试方法。在这种情况下,你应该做的第一件事是直接检查
k>50
,然后检查
class(k)
——这会引导你找到答案,而不是这个站点。
"9" <= 50
# [1] FALSE
"1" <= 50
# [1] TRUE
K <- as.numeric(readline("Enter K: "))
k <- as.numeric(readline("Enter k: "))