【发布时间】:2015-12-02 21:09:53
【问题描述】:
pred=data.frame(seq(1,100,by=2))
obs=data.frame(seq(1,100,by=3))
pr=data.frame(seq(1,200,by=4))
for (i in 1:dim(pred)[2]) {
if (pr[,i]>max(pred[,i],na.rm=T)){
pr[,i]=pr[,i]*(max(obs[,i],na.rm=T)/max(pred[,i],na.rm=T))}}
我收到错误“条件的长度 > 1,并且只会使用第一个元素”还有其他选择吗??
【问题讨论】:
-
您可能正在寻找
ifelse -
ifelse是if的矢量化替代方案。但是,如果您用文字描述您正在尝试做的事情,可能会有更好的方法。 -
我正在处理气候数据,如果值高于我在代码中定义的阈值,我想乘以一个因子,否则我想做分位数映射。 (我不想放整个代码,因为它可能会造成混乱)
-
你看过包 qmap 吗?
-
是的,我做了,我只想对低于某个阈值的降水值进行分位数映射。
标签: r