错误:“条件长度 > 1,仅使用第一个元素”

Posted

技术标签:

【中文标题】错误:“条件长度 > 1,仅使用第一个元素”【英文标题】:Error: "the condition has length > 1 and only the first element will be used" 【发布时间】:2021-01-19 15:50:45 【问题描述】:

我的目标是根据每个测量径流水平(“ q347_2035"),这里是 283 个测量值的向量。所以例如如果 q347_2035 大于 60 且小于/等于 160,则最小径流计算为 q347_2035 的一部分(参见下面的代码):

getQMIN <- if(q347_2035 <= 60)
  qMin_2035 = 50
 else if (q347_2035>60 & q347_2035 <= 160) 
  qMin_2035 = 50 + (8/10)*(q347_2035 - 60)
 else if (q347_2035>=160 & q347_2035 <= 500) 
  qMin_2035 = 130 + (4.4/10)*(q347_2035 - 160)
 else if (q347_2035>=500 & q347_2035 <= 2500) 
  qMin_2035 = 280 + (31/100)*(q347_2035 - 500)
 else if (q347_2035>=2500 & q347_2035 < 10000) 
  qMin_2035 = 900 + (21.3/100)*(q347_2035 - 2500)
 else if (q347_2035>=10000 & q347_2035 < 60000) 
  qMin_2035 = 2500 + (150/1000)*(q347_2035 - 10000)
 else 
  qMin_2035 = 10000

现在我总是收到错误消息,说:

Warning messages:
1: In if (q347_2035 <= 60)  :
  the condition has length > 1 and only the first element will be used
2: In if (q347_2035 > 60 & q347_2035 <= 160)  :
  the condition has length > 1 and only the first element will be used
3: In if (q347_2035 >= 160 & q347_2035 <= 500)  :
  the condition has length > 1 and only the first element will be used
4: In if (q347_2035 >= 500 & q347_2035 <= 2500)  :
  the condition has length > 1 and only the first element will be used

谁能帮忙解决这个问题? 提前非常感谢!

【问题讨论】:

【参考方案1】:

尝试在您的语句中使用 && 而不是 &。有关原因的进一步解释,请查看此帖子的答案:Boolean operators && and ||。

q347_2035 = 60

getQMIN <- if(q347_2035 <= 60)
qMin_2035 = 50
 else if (q347_2035>60 && q347_2035 <= 160) 
qMin_2035 = 50 + (8/10)*(q347_2035 - 60)
 else if (q347_2035>=160 && q347_2035 <= 500) 
qMin_2035 = 130 + (4.4/10)*(q347_2035 - 160)
 else if (q347_2035>=500 && q347_2035 <= 2500) 
qMin_2035 = 280 + (31/100)*(q347_2035 - 500)
 else if (q347_2035>=2500 && q347_2035 < 10000) 
qMin_2035 = 900 + (21.3/100)*(q347_2035 - 2500)
 else if (q347_2035>=10000 && q347_2035 < 60000) 
qMin_2035 = 2500 + (150/1000)*(q347_2035 - 10000)
 else 
qMin_2035 = 10000


getQMIN #Result is 50

【讨论】:

谢谢,这行得通,但不幸的是第一行不行:if (q347_2035 它应该适用于我上面发布的答案。尝试在调用 getQMIN 之前再次运行所有代码,因为如果不这样做,您将得到错误的数字。我将编辑我的答案并发布正确的代码。

以上是关于错误:“条件长度 > 1,仅使用第一个元素”的主要内容,如果未能解决你的问题,请参考以下文章

Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理