Estou tendo alguma dificuldade em acertar o script para executar o calculo do balanço hídrico de Thornthwaite & Mather, mas para uma escala diária.
Utilizei o comando for e o if else para estabelecer as condições e calcular cada variável para cada dia do período analisado. Entretanto, o script não está calculando as variáveis e retorna os vetores vazios.
Segue o script no corpo do email e os dados de entrada em anexo.
#----------Remover Objetos----------#
rm(list = ls())
#----------Selecionar arquivo de interesse----------#
a = read.table("x.txt", sep = "\t", header = T); head(a)
#----------Iniciar o BH----------#
a$P.ETP = a$RAIN-a$ETP.Penman
cad = 100
a$NAc = NA
a$ARMi = NA
a$ARMf = NA
a$ALT = NA
a$ETR = NA
a$DEF = NA
a$EXC = NA
head(a)
a$NAc[1] = 0
a$ARMi[1] = cad
a$ARMf[1] = cad
a$ALT[1] = 0
for(i in 2:length(a[,1])){
if(a$P.ETP[i]<0){
(a$NAc[i] = a$P.ETP[i]+a$NAc[i-1])
a$ARMi[i] = (cad*exp(-1*((abs(a$NAc[i]))/cad)))
}else{
a$ARMf[i] = ifelse(a$ARMi[i] > cad, cad, a$ARMi[i])
a$ARMi[i] = a$ARMf[i-1]+a$P.ETP[i]
a$NAc[i] = cad*log((a$ARMf[i])/cad)
}
a$ALT[i] = a$ARMf[i] - a$ARMf[i-1]
a$ETR[i] = if(a$P.ETP[i]<0){a$RAIN[i]+abs(a$ALT[i])} else{a$ETP.Penman[i]}
a$DEF[i] = a$ETP.Penman[i] - a$ETR[i]
a$EXC[i] = a$ARMi[i] - a$ARMf[i]
}
View(a)