2013-09-29 4 views
0

) Я пытаюсь подсчитать разные события дождя! Каждое новое событие начинается (получает новый номер), если не было осадков на определенный период времени (time.steps.event.end). Но почему-то R дает мне сообщение об ошибке. Забавно, что тот же код работает с более коротким списком измерений (в том же формате). К вашей информации: R всегда дает мне ошибки при I = 1577739 из 1577809 измеренийОтсутствует значение, в котором требуется TRUE/FALSE -> in while (any (loop

Это (дефектная часть) мой код:.

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 

Может кто-нибудь мне помочь?

+2

Хотя я люблю энтузиазм для нумерации дождевых событий, что трудно дать конкретный ответьте, потому что вы не предоставили достаточно данных/кода. См. Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – GSee

ответ

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 

Может быть, вы могли бы специально проверить ВПЛИ как этот

while(!any(is.na(x[3:4])) && any(x[3:4] > 0)) print(TRUE) 

 Смежные вопросы

  • Нет связанных вопросов^_^