<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10pt"><div><span>Caro Éder, muito obrigado por sua atenção o script esta ótimo.</span><span style="background-color: transparent;"> </span></div><div></div><div> </div><div><font face="times new roman, new york, times, serif">Alisson Lucrécio da Costa</font></div><div class="yahoo_quoted" style="display: block;"> <br> <br> <div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 10pt;"> <div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> On Friday, October 18, 2013 2:30 PM, Éder Comunello <comunello.eder@gmail.com> wrote:<br> </font> </div>  <div class="y_msg_container"><div id="yiv2631259886"><div><div
 dir="ltr"><div>Alisson, boa tarde!</div><div><br clear="none"></div><div>Embora o script abaixo possa não ser a melhor forma de resolver o problema, deve servir como ponto de partida!</div><div><br clear="none"></div><div><div><font face="courier new, monospace">### <BEGIN> ###</font></div>
<div><font face="courier new, monospace">### Dados</font></div><div><font face="courier new, monospace">dURL1 <- '<a rel="nofollow" shape="rect" target="_blank" href="http://r-br.2285057.n4.nabble.com/attachment/4660645/0/normais.clima.csv">http://r-br.2285057.n4.nabble.com/attachment/4660645/0/normais.clima.csv</a>'</font></div>
<div><font face="courier new, monospace">dURL2 <- '<a rel="nofollow" shape="rect" target="_blank" href="http://r-br.2285057.n4.nabble.com/attachment/4660645/1/inmet.mensal.csv">http://r-br.2285057.n4.nabble.com/attachment/4660645/1/inmet.mensal.csv</a>'</font></div>
<div><font face="courier new, monospace">dNormal  <- read.table(dURL1, header=T, sep=';')</font></div><div><font face="courier new, monospace">dMensal  <- read.table(dURL2, header=T, sep=';')</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Inspecionando os dados (colunas, linhas e contagem de NA's)</font></div><div><font face="courier new, monospace">length(dNormal); nrow(dNormal); length(which(<a rel="nofollow" shape="rect" target="_blank" href="http://is.na/">is.na</a>(dNormal)))</font></div>
<div><font face="courier new, monospace">length(dMensal); nrow(dMensal); length(which(<a rel="nofollow" shape="rect" target="_blank" href="http://is.na/">is.na</a>(dMensal)))</font></div><div><font face="courier new, monospace">head(dNormal,3); head(dMensal,3) </font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Mapeia os valores NA's</font></div><div><font face="courier new, monospace">naMap <- which(<a rel="nofollow" shape="rect" target="_blank" href="http://is.na/">is.na</a>(dNormal), arr.ind = TRUE, useNames = TRUE); head(naMap)</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Visualiza NA's</font></div><div><font face="courier new, monospace">length(naMap[,1]); length(unique(naMap[,1])) ### Linhas que contém algum NA</font></div>
<div><font face="courier new, monospace">dNormal[unique(naMap[,1]),]</font></div><div><font face="courier new, monospace">dNormal[(naMap[,1]),] ### mesmo que anterior / talvez aplique 'unique' por 'default'?</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Correlacionar as tables usando $Codigo e $Mes e preparar data.frame</font></div><div><font face="courier new, monospace">naData          <- data.frame(naMap)</font></div>
<div><font face="courier new, monospace">naData$Codigo   <- dNormal[naMap[,1],]$Codigo</font></div><div><font face="courier new, monospace">naData$Mes      <- dNormal[naMap[,1],]$Mes</font></div><div><font face="courier new, monospace">naData$ver      <- (naData$Codigo %in% dMensal$Codigo) & (naData$Mes %in% dMensal$Mes)</font></div>
<div><font face="courier new, monospace">naData$pos      <- NA</font></div><div><font face="courier new, monospace">naData$val      <- NA</font></div><div><font face="courier new, monospace">### (ver)ifica correspondência</font></div>
<div><font face="courier new, monospace">### (pos)ição da correspondência</font></div><div><font face="courier new, monospace">### (val)or correspondente</font></div><div><font face="courier new, monospace">head(naData)</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Linhas sem correspondência</font></div><div><font face="courier new, monospace">head(naData[which(naData$ver==F),])</font></div>
<div><font face="courier new, monospace">nrow(naData[which(naData$ver==F),])</font></div><div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Obter valores para dados com correspondência ($val)</font></div>
<div><font face="courier new, monospace">for (i in 1:nrow(naData)) { </font></div><div><font face="courier new, monospace">          if (naData$ver[i]==TRUE) {  </font></div><div><font face="courier new, monospace">                    naData$pos[i]=(which(dMensal$Codigo==naData[i,3] & dMensal$Mes==naData[i,4]))</font></div>
<div><font face="courier new, monospace">                    naData$val[i]=(dMensal[naData$pos[i],naData$col[i]])</font></div><div><font face="courier new, monospace">}}</font></div><div><font face="courier new, monospace"><br clear="none">
</font></div><div><font face="courier new, monospace">### Confere número de dados sem valor (~ linhas sem correspondência)</font></div><div><font face="courier new, monospace">length(which(<a rel="nofollow" shape="rect" target="_blank" href="http://is.na/">is.na</a>(naData$val)))</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Nesse ponto, naData compila o valor e a posição onde mudar.</font></div><div><font face="courier new, monospace">head(naData)</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Operando em uma cópia dos dados originais</font></div><div><font face="courier new, monospace">dNormal2 <- dNormal</font></div>
<div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">for (i in 1:nrow(naData)) {</font></div><div><font face="courier new, monospace">          dNormal2[naMap[i,1],naMap[i,2]] <- naData$val[i]                    </font></div>
<div><font face="courier new, monospace">          }</font></div><div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### Inspeção final</font></div><div><font face="courier new, monospace">length(which(<a rel="nofollow" shape="rect" target="_blank" href="http://is.na/">is.na</a>(dNormal)))  ### NA's no original</font></div>
<div><font face="courier new, monospace">length(which(<a rel="nofollow" shape="rect" target="_blank" href="http://is.na/">is.na</a>(dNormal2))) ### NA's no final</font></div><div><font face="courier new, monospace"><br clear="none"></font></div><div><span style="font-family: 'courier new', monospace;">head(dNormal2)</span><font face="courier new, monospace"><br clear="none">
</font></div><div><font face="courier new, monospace">str(dNormal2)</font></div><div><font face="courier new, monospace">#edit(dNormal2)</font></div><div><font face="courier new, monospace"><br clear="none"></font></div><div><font face="courier new, monospace">### <END> ###</font></div>
</div><br clear="none"><div class="yiv2631259886gmail_extra"><br clear="all"><div><div dir="ltr">Éder Comunello <<a rel="nofollow" shape="rect" ymailto="mailto:comunello.eder@gmail.com" target="_blank" href="mailto:comunello.eder@gmail.com">c</a><a rel="nofollow" shape="rect" ymailto="mailto:omunello.eder@gmail.com" target="_blank" href="mailto:omunello.eder@gmail.com">omunello.eder@gmail.com</a>> <br clear="none">
Dourados, MS - [22 16.5'S, 54 49'W]<div class="yiv2631259886yqt5183485556" id="yiv2631259886yqtfd98743"><br clear="none"></div></div></div><div class="yiv2631259886yqt5183485556" id="yiv2631259886yqtfd66863">
<br clear="none"></div></div></div></div></div><br><br></div>  </div> </div>  </div> </div></body></html>