我有一个ifelse评估问题。数据框中的R ifelse和NAs
以下函数计算根据3个条件:
mk <- function(a, b, c, d, e_1, e_2, f, k)
# condition 1
ifelse (!is.na(e_1) & !(k %in% 1),
mk <- d - e_1 * c,
# condition 2
ifelse (!is.na(e_2) & !(k %in% 1),
mk <- e_2 - d * c,
# condition 3
ifelse((a - b) <= 11,
mk <- c * a - b * f,
mk <- c * f
))
)
如果我解析单个元件函数正确评估,但是如果我给一个数据帧的行作为输入只有永远值的函数使用的计算中最后一个条件,即使满足以前的条件。包含e_1,e_2和k的值的列在其中包含一些NA,我怀疑这是问题所在。我没有得到的是为什么NA'S强迫整个向量被评估为条件3,即使它们实际上从未用于计算,因为条件应该排除它们的使用。如果我用字符替换计算,即写入“使用条件1/2/3”而不是公式,则条件将被正确评估。
我该如何避免这个问题?
是否有一些行满足多个条件,即'e_1'和'e_2'不是'NA'和'a-b <= 11'? – 2014-10-27 13:10:54
这是可能的,但它是相关的吗?这个最后的条件应该只在1或2都不适用时才被评估。 – Chris 2014-10-27 13:14:28
你可以发布你提供'data.frame'到函数的代码吗?没有这些和一些数据就很难测试。 – 2014-10-27 13:17:40