我用两个连续的if条件在R中编写了以下函数:
f <- function(a) {
if (a > 10) {
c <- 'a is greater than 10'
c
}
if (a < 10) {
c <- 'a is less than 10'
c
}
}
调用f(1)
返回'a小于10',但是调用f(11)
返回没有任何结果。
我对为什么会这样感到困惑?理论上,两个顺序的if语句应与if-else语句具有相同的效果,但是,如果触发第二个条件而不是第一个条件,则不返回任何输出。我已经尝试过此功能的多种变体,但仍观察到相同的效果。任何帮助将不胜感激!
答案 0 :(得分:0)
在R函数中,返回该函数的上次调用(或return
)返回的任何内容。
在您的示例中,如果a < 10
,则返回c
(如预期)。但是,如果条件a < 10
为假,则最后一次调用为if
条件-因此什么也不返回。
您可以尝试以下方法来达到目的:
f <- function(a) {
if (a > 10) {
c <- 'a is greater than 10'
print(c)
}
if (a < 10) {
c <- 'a is less than 10'
print(c)
}
}
f(1)
f(11)