【问题标题】: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: ")
}
错误:
【问题讨论】:
标签:
r
if-statement
relational-operators
【解决方案1】:
1) 尽管1 <= a <= 10 在逻辑上看起来是正确的,但它在 R 中不是有效的语法。您需要单独使用1 >= a & a <= 10。
2) readline 的输出是一个字符,您可能需要包装 as.numeric 以获取一个数字。
3) 不需要再次分配a 和b,如果条件是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: "))