我正在尝试编号不同的雨事件!如果在一段时间内没有降雨(time.steps.event.end),则每个新事件开始(获取一个新号码)。但不知何故R给了我一个错误信息。有趣的是,相同的代码工作,具有较短的测量列表(以相同的格式)。根据您的信息:R总是在1577809测量值中给出i = 1577739的误差。
这是我的代码(错误部分):
i=1
rain.index=0
finedata=rain.series.matrix[,3]
while(i<(length(finedata)-time.steps.event.end+1)) {
if (finedata[i]==0)
i=i+1 else {
rain.index=rain.index+1
rain.series.matrix[(i-max(durations)/20):i,2]=rain.index
while(any(finedata[(i+1):(i+time.steps.event.end)]>0))
{
i=i+1
rain.series.matrix[i,2]=rain.index
}
rain.series.matrix[(i+1):(i+time.steps.event.end),2]=rain.index
i=i+1
}
}
显示以下错误:
Error in while (any(finedata[(i + 1):(i + time.steps.event.end)] > 0, :
missing value where TRUE/FALSE needed
有人能帮助我吗?
答案 0 :(得分:3)
错误告诉您,您正在尝试比较两件事,但其中一件缺失。
这是一个更简洁,可重复的例子
x <- 1:2
x[3:4]
#[1] NA NA
while(any(x[3:4] > 0)) print(TRUE)
#Error in while (any(x[3:4] > 0)) print(TRUE) :
# missing value where TRUE/FALSE needed
也许你可以专门检查这样的NA
while(!any(is.na(x[3:4])) && any(x[3:4] > 0)) print(TRUE)