【问题标题】:Error in IF statementIF 语句中的错误
【发布时间】:2014-11-11 22:47:23
【问题描述】:

我正在尝试构造一个 if 语句,如果除数大于零,它将计算一个语句,如果不是则返回零。 我确定我的花括号在正确的位置,但 R 一直给我一条警告消息,说

条件的长度 >1,并且只使用第一个元素。

我理解这意味着 R 只评估第一条语句并忽略 else 位,但我从我的数据中知道 if 条件中的变量肯定有零条目

这是我当前的代码

if (contributions$MEMCONTAMT > 0) {
 contributions$CONTAMTRATIO <- contributions$EMPCONTAMT/contributions$MEMCONTAMT
} else {
 contributions$CONTAMTRATIO==0
}

提前致谢

【问题讨论】:

  • 看看?ifelse,它是矢量化的。
  • 猜猜你想要 = 或 &lt;- 作为 else 行。不是==
  • 建议提供示例数据和更完整的代码体。
  • 变量 MEMCONTAMT 是一个数值变量,可以取任何值。我使用了 summary 命令,它的最小值为 -44,最大值为 740。没有 N/A
  • 稍微短一点:contributions$CONTAMTRATIO 0, EMPCONTAMT/MEMCONTAMT, 0))

标签: r


【解决方案1】:

我想你正在寻找

transform(contributions, 
          CONTAMTRATIO = "[<-"(EMPCONTAMT / MEMCONTAMT, MEMCONTAMT <= 0, 0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-28
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2018-08-30
    • 2010-10-02
    相关资源
    最近更新 更多