我在R中编写了以下函数,其中包含两个连续的if条件:
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 语句具有相同的效果,但是,如果触发第二个条件而不是第一个条件,则不会返回任何输出。我已经尝试了此功能的多种变体,并且仍然观察到相同的效果。任何帮助将不胜感激!
在 R 函数中返回此函数中最后一次调用(或按return
返回的任何内容(。
在您的示例中,如果a < 10
则返回c
(如预期的那样(。但是,如果条件a < 10
为 false,则最后一次调用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)