r - 三个选项的 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() 时,我只能有两个结果,所以只有赢或输。有没有一种简单的方法来克服这个问题?
解决方案
data.table
,我们可以使用fcase
library(data.table)
setDT(df1)[, result := fcase(difference > 0, "win",
difference == 0, "draw",
default = "lose")]
推荐阅读
- c++ - C++ 将 char* 字符串放入 std::vector 的更好方法
? - typescript - Vuex+Jest 测试因 TypeError 而失败
- python - 循环训练中缺少一批?
- h2o - H2O“输出 - 集群均值”部分未正确报告指标
- html - 在 CSS 中创建叠加层
- visual-c++ - 尝试在 C++ 中打印树(不使用 x)
- excel - 所有工作表中的vba循环texttocolumns
- kotlin - kotlin 控制台应用程序在程序退出之前执行所有异步任务的方法
- c# - 环境变量在 app.config 中被视为字符串
- javascript - create-react-app + react-bootstrap:如何将 CDN 链接添加到 bootstrap css?