[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