未到达的ifelse子句中的未定义变量会导致错误

时间:2016-06-06 18:32:23

标签: r if-statement

我在函数中有两个嵌套的ifelse语句。当我调用该函数时,它会失败,因为最后一个else子句中的变量未定义 - 即使未达到该子句。

x <- factor(c("a", "b", "c", "d"))

h <- "hi"
l <- "lo"

现在从未使用未定义的变量m,但这会产生错误:

ifelse(as.numeric(x) > 2, h,
       ifelse(as.numeric(x) < 3, l, m))
  

ifelse错误(as.numeric(x)&lt; 3,l,m):object&#39; m&#39;找不到

即使x的所有四个值都满足前两个if条件:

> sum(as.numeric(x) > 2 | as.numeric(x) < 3)
[1] 4

编辑:我在这个例子中故意没有定义m,但是我想知道如何评估它,以便当最后一个子句是R时,R查找m从未到过。

0 个答案:

没有答案