<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Boa tarde Bruno, Seria ideal colocar um exemplo dos dois data frames para que possamos reproduzir. Mas da uma olhada na condicional. Eh isso mesmo que você quer?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div># Calculo Distancia<br class="">for (i in 1:216) {<br class=""> coord1 <- c(x$LONG[i],x$LAT[i])<br class=""> for (j in 1:11195 ) {<br class=""> coord2 <- c(y$Longitude[j],y$Latitude[j])<br class=""> dista1[j] <- as.numeric(distm(coord1,coord2, fun = distGeo))<br class=""> #Calculo da menor distancia<br class=""> <div class="">### AQUI, a condição executa se j > 1. Na verdade, o j varia de 1 a 11195. Eh isso mesmo?</div><div class="">if (j>1) {<br class=""> k <- j-1<br class=""> if (dista1[j]<dista1[k]) {<br class=""> menor_dist <- dista1[j]<br class=""> x$Distancia[i] <- menor_dist<br class=""> x$SiteID[i] <- y$SITE.ID[j]<br class=""> }</div><div class=""><br class=""> else {<br class=""> menor_dist <- dista1[k]<br class=""> x$Distancia[i] <- menor_dist<br class=""> x$SiteID[i] <- y$SITE.ID[k]<br class=""> }<br class=""> }<br class=""> }<br class="">}<br class=""><div><br class=""></div><div><br class=""></div><div>daniel</div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class="">On Dec 17, 2018, at 2:23 PM, Bruno Rhuan por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br" class="">r-br@listas.c3sl.ufpr.br</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Boa Tarde,</div><div class=""><br class=""></div><div class="">Estou escrevendo um algorítimo que calcule a distância entre uma serie de coordenadas e retorne qual o ponto mais próximo.</div><div class=""><br class=""></div><div class="">Para isso, o código utiliza dois datasets de coordenadas geográficas (lat/long) e o calculo da distancia é feito utilizando a biblioteca "geosphere".</div><div class=""><br class=""></div><div class="">Porém, basicamente todos os resultados do algorítimo sempre apontam para a ultimo ponto do segundo dataset como sendo o mais próximo, assim creio ter algum erro no loop.</div><div class=""><br class=""></div><div class="">Alguma sugestão?</div><div class=""><br class=""></div><div class="">Abaixo o código</div><div class=""><br class=""></div><div class="">______</div><div class=""><br class=""></div><div class=""><div class="">#biblioteca necessária</div><div class="">#install.packages("geosphere")</div><div class="">library("geosphere")</div><div class=""><br class=""></div><div class="">#carregar arquivos</div><div class="">x <- read.csv(file.choose(),sep=";",dec=",") # carregar lista de pontos nominais TIM</div><div class="">y <- read.csv(file.choose(),sep=";",dec=",") # carregar base de sites</div><div class=""><br class=""></div><div class="">#converter site id em characther</div><div class="">x$SiteID <- as.character(x$SiteID)</div><div class="">y$<a href="http://site.id/" class="">SITE.ID</a> <- as.character(y$<a href="http://site.id/" class="">SITE.ID</a>)</div><div class=""><br class=""></div><div class="">#Mostrar tabelas</div><div class="">View(y)</div><div class="">View(x)</div><div class=""><br class=""></div><div class="">dista1 <- c() #distancia do ponto nominal ao site</div><div class=""><br class=""></div><div class=""># Calculo Distancia</div><div class="">for (i in 1:216) {</div><div class=""> coord1 <- c(x$LONG[i],x$LAT[i])</div><div class=""> for (j in 1:11195 ) {</div><div class=""> coord2 <- c(y$Longitude[j],y$Latitude[j])</div><div class=""> dista1[j] <- as.numeric(distm(coord1,coord2, fun = distGeo))</div><div class=""> #Calculo da menor distancia</div><div class=""> if (j>1) {</div><div class=""> k <- j-1</div><div class=""> if (dista1[j]<dista1[k]) {</div><div class=""> menor_dist <- dista1[j]</div><div class=""> x$Distancia[i] <- menor_dist</div><div class=""> x$SiteID[i] <- y$<a href="http://site.id/" class="">SITE.ID</a>[j]</div><div class=""> }</div><div class=""> else {</div><div class=""> menor_dist <- dista1[k]</div><div class=""> x$Distancia[i] <- menor_dist</div><div class=""> x$SiteID[i] <- y$<a href="http://site.id/" class="">SITE.ID</a>[k]</div><div class=""> }</div><div class=""> }</div><div class=""> }</div><div class="">}</div><div class=""><br class=""></div><div class="">write.csv(x, "Resultado.csv", row.names = FALSE)</div></div><div class=""><br class=""></div><div class="">_______________</div><div class=""><br class=""></div><div class="">Resultado retornado:</div><div class=""><br class=""></div><div class=""><table border="0" cellpadding="0" cellspacing="0" width="501" style="border-collapse:collapse;width:376pt" class="">
<colgroup class=""><col width="93" style="width:70pt" class="">
<col width="95" span="2" style="width:71pt" class="">
<col width="130" style="width:98pt" class="">
<col width="88" style="width:66pt" class="">
</colgroup><tbody class=""><tr height="20" style="height:15pt" class="">
<td height="20" class="gmail-xl65" width="93" style="height: 15pt; width: 70pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">ï<b class="">..END_ID</b></td>
<td class="gmail-xl65" width="95" style="width: 71pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;"><b class="">LAT</b></td>
<td class="gmail-xl65" width="95" style="width: 71pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;"><b class="">LONG</b></td>
<td class="gmail-xl65" width="130" style="width: 98pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;"><b class="">Distancia (m)</b></td>
<td class="gmail-xl65" width="88" style="width: 66pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;"><b class="">SiteID</b></td>
</tr>
<tr height="20" style="height:15pt" class="">
<td height="20" class="gmail-xl65" style="height: 15pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">BASDR_1</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">-1.296.434</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">-3.847.421</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">144.669.250.579.953</td>
<td class="gmail-xl65" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">YBARWL</td>
</tr>
<tr height="20" style="height:15pt" class="">
<td height="20" class="gmail-xl65" style="height: 15pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">BALFS_2</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">-1.289.767</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">-3.832.365</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">146.401.362.045.206</td>
<td class="gmail-xl65" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">YBARWL</td>
</tr>
<tr height="20" style="height:15pt" class="">
<td height="20" class="gmail-xl65" style="height: 15pt; text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">CEFLA_3</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">-377.709</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">-3.855.802</td>
<td class="gmail-xl66" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">222.607.630.292.628</td>
<td class="gmail-xl65" style="text-align: center; padding-top: 1px; padding-right: 1px; padding-left: 1px; font-size: 11pt; font-family: Calibri, sans-serif; vertical-align: bottom; border: none; white-space: nowrap;">YBARWL</td>
</tr>
</tbody></table><br class=""></div><div class=""><div class="">Distancia (m) = distancia ao ponto mais próximo</div><div class="">SiteID = nome do ponto mais próximo.</div></div><div class=""><br class=""></div><div class="">At.te</div><div class=""><br class=""></div><div class="">Bruno</div><div class=""><br class=""></div></div></div>
_______________________________________________<br class="">R-br mailing list<br class=""><a href="mailto:R-br@listas.c3sl.ufpr.br" class="">R-br@listas.c3sl.ufpr.br</a><br class="">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br class="">Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.</div></blockquote></div><br class=""></div></body></html>