R 的控制流在多个 if 语句中的行为不符合预期



我在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)

相关内容

  • 没有找到相关文章

最新更新