[R-br] Script com for() e if {} else{}

Éder Comunello comunello.eder em gmail.com
Quinta Maio 19 10:16:11 BRT 2016


Senhores, bom dia!

Fiz algumas alterações no código e está rodando, mas não examinei a fundo a
lógica das operações. Olhei apenas os gráficos finais e parece estar
correto...

### <code r>
setwd("D:/LAB/NOVOS/MET")

rm(list = ls())
a = read.table("x.txt", sep = "\t", header = T); head(a)

#----------Iniciar o BH----------#
cad = 100
a$P.ETP = a$RAIN-a$ETP.Penman
a$NAc = 0
a$ARMi = cad
a$ARMf = a$ARMi
a$ALT = 0
a$EXC = a$DEF = a$ETR = NA
head(a)

# Variáveis iniciais que estavam faltando...
a$ETR[1]  = with(a, if(P.ETP[1]<0){RAIN[1]+abs(ALT[1])} else
{ETP.Penman[1]})
a$DEF[1]  = with(a, ETP.Penman[1] - ETR[1])
a$EXC[1]  = with(a, ARMi[1] - ARMf[1])
head(a)

for(i in 2:nrow(a)){
     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))))
          (a$ARMf[i] = ifelse(a$ARMi[i] > cad, cad, a$ARMi[i])) ### inseri
essa linha
    } else {
          (a$ARMi[i] = a$ARMf[i-1]+a$P.ETP[i]) ### mudei a posição! Calcula
sempre ARMi primeiro
          (a$ARMf[i] = ifelse(a$ARMi[i] > cad, cad, a$ARMi[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] = ifelse(a$ETP.Penman[i]-a$ETR[i] > 0,
a$ETP.Penman[i]-a$ETR[i], 0) ### alterado
     a$EXC[i] = a$ARMi[i] - a$ARMf[i]
}

head(a)
a$DATE <- as.Date(a$DATE)
# plot(a$ARMi~a$DATE, type="l") # variação do armazenamento
plot(a$ARMf~a$DATE, type="l") # variação do armazenamento

# Extrato...
yLim <- range(c(a$EXC, -a$DEF)); yLim
plot(a$EXC~a$DATE, type="l", ylim=yLim); lines(-a$DEF~a$DATE, col=2)
plot(a$EXC~a$DATE, type="l", ylim=c(-10,10)); lines(-a$DEF~a$DATE, col=2)
barplot(a$EXC, col=4, bor=NA, ylim=c(-10,10)); barplot(-a$DEF, col=2,
bor=NA, add=T)

# Precipitação vs. ET
plot(a$RAIN~a$DATE, type="l", ylim=c(-10,10)); lines(-a$ETP.Penman~a$DATE,
col=3); lines(-a$ETR~a$DATE, col=2)
### </code>

[image: Imagem inline 1]

​
================================================
Éder Comunello
Agronomist (UEM), MSc in Environ. Sciences (UEM)
DSc in Agricultural Systems Engineering (USP/Esalq)
Brazilian Agricultural Research Corporation (Embrapa)
Dourados, MS, Brazil |<O>|
================================================
GEO, -22.2752, -54.8182, 408m
UTC-04:00 / DST: UTC-03:00
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160519/77350aec/attachment.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: image.png
Tipo: image/png
Tamanho: 8955 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160519/77350aec/attachment.png>


Mais detalhes sobre a lista de discussão R-br