r - ifelse() 中的多个变量赋值
问题描述
我在这里犯了什么错误?如果其中三个陈述为真,我正在尝试分配一些a
值。b
我正在尝试使用以下ifelse
语句:
ifelse(1==1||2==2||3==3, (a<-100,b<-100), (a<-1000,b<-1000))
但我收到一个错误:
错误:“ ifelse(1==1||2==2||3==3,(a<-100,"
编辑:
以更一般化的方式,有两个变量 a 和 b 需要根据条件分配不同的值:if (x=="cat" or x=="dog" or x=="horse", then, a是 100,b 是 200,否则,a 是 500,b 是 1000)
解决方案
回答OP在评论中很好地陈述的问题:
如果 (x=="cat" 或 x=="dog" 或 x=="horse",则 a 为 100,b 为 200,否则,a 为 500,b 为 1000)
if (x == "cat" || x == "dog" || x == "horse") {
a = 100
b = 200
} else {
a = 500
b = 1000
}
我们可以做得更好,%in%
而不是|
- 效果很好,特别是如果你有更多的值要检查
if (x %in% c("cat", "dog", "horse")) {
a = 100
b = 200
} else {
a = 500
b = 1000
}
ifelse
是一个返回向量的向量化函数。如果你想“做”事情,或者为每个测试条件返回超过 1 个值,if(){}else{}
是合适的。
推荐阅读
- laravel - 如何使用 Laravel 路由具有多个子域的应用程序
- gdb - 从 gdb exec 获取返回
- php - 使用 PHP 到 Navision SOAP 网络服务的 NTML 身份验证
- java - 如何将 BoomMenu 库从 GitHub 添加到我的应用程序?
- typescript - 如何在没有 Node.JS 和外部库的情况下在 TypeScript 中使用导入?
- sql - oracle sql - 如何准备查询
- authentication - 尽管密钥没有密码,为什么 WSL1 上的 ssh 要求输入密码
- c# - 我按 Ctrl + Alt + C 然后抛出错误:路径中的非法字符路径中的非法字符
- bash - Bash 脚本手动运行,但在 crontab 中失败
- c++ - C++ 2D 数组输入验证