首页 > 解决方案 > 三个选项的 ifelse 替代品

问题描述

所以我有一个包含足球(足球)结果的数据库。我有一个主队和客队之间差异的列,并且想创建一个列来说明主队是赢、输还是平。

所以我写了一个 if-else 语句

if (difference>0) {
  result2 = 'win'
} else if (difference<0) {
  result2 = 'loss'
} else if (difference==0) {
  result2 = 'draw'
} else {
  result2 = 'error'
}

然而,这个 if-else 语句是不可能的,因为 if 在 R 中没有向量化。当我使用 ifelse() 时,我只能有两个结果,所以只有赢或输。有没有一种简单的方法来克服这个问题?

标签: rif-statementconditional-statements

解决方案


data.table,我们可以使用fcase

library(data.table)
setDT(df1)[, result := fcase(difference > 0, "win",
                             difference == 0, "draw",
                               default = "lose")]

推荐阅读