错误:“条件长度 > 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:未处理的内部错误