【问题标题】:R, missing value where TRUE/FALSE neededR,需要 TRUE/FALSE 的缺失值
【发布时间】:2015-12-06 03:19:23
【问题描述】:

我试图检查两个变量是否具有相同的符号,这是我正在使用的代码。

a <- c(0)
x1 <- x/abs(x)
y1 <- y/abs(y)
if(x1==y1) {
  a <- x + y
  } else {
  a <- x - y
}

但我得到了错误

Error in if (x1 == y1) { : missing value where TRUE/FALSE needed

我做错了什么?有没有更有效的方法来检查标志?

【问题讨论】:

  • 尝试sign检查标志
  • 可能 x 或 y 等于 0。所以你有 x1 或 y1 等于 NaN 导致表达式 x1==y1 等于 NA。 NA 在“if(x1==y1)”中引发错误。如上所述,使用 'sign' 功能。

标签: r if-statement


【解决方案1】:

将您的操作组合在一起并使用sign 函数,您可以尝试:

a <- ifelse(sign(x) == sign(y), x + y, x - y)

注意。 sign(0) 返回0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-17
    • 2016-11-06
    • 2015-06-28
    • 1970-01-01
    • 2019-03-07
    • 2018-07-12
    • 2014-06-06
    • 1970-01-01
    相关资源
    最近更新 更多