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: "))