#olá pessoal,<div>#Estou querendo montar uma função que me mostre pontos que estão á uma distância menor que uma pré-estabelecida.</div><div><br></div><div>#o script e explicações seguem abaixo:</div><div><br></div><div>############################</div>
<div>##Conjunto de dados para testar<div><div>a<-rep(c(1,4),each=4)</div><div>b<-c(1,2,4,5,1,2,4,5)</div><div>cc<-c("p1","p2","p3","p4","p5","p6","p7","p8")</div>
<div>mat<-data.frame(cc,a,b)</div><div>rownames(mat)<-cc</div><div>coord<-mat[,c(2,3)]</div><div>plot(coord,pch="",xlim=c(0,6),ylim=c(0,6));text(coord[,"a"],coord[,"b"],rownames(coord))#esse é o meu conjunto de pontos.</div>
<div>#note que se eu for juntar os pontos que estão a uma distância menor ou igual á dois, formarei dois grupos.</div><div>#um formado pelos pontos: p1, p2, p3 e p4 e, outro grupo com os pontos p5, p6, p7 e p8</div><div>
####################</div></div><div><br></div><div>##iniciando os cálculos de distância</div><div>library(vegan)</div><div><div>(mat.dist<-vegdist(coord,"euclidean"))#calculo de distância entre os pontos</div>
<div>resu.col1<-numeric(0)</div><div>resu.col2<-numeric(0)</div><div>(distancias<-as.numeric(mat.dist))</div><div>locais<-rownames(coord)</div><div>n.linhas<-nrow(coord)</div></div><div><br></div><div>##Agora vou criar uma tabela para comparar as distâncias par-a-par</div>
<div><div><span class="Apple-tab-span" style="white-space:pre"> </span>for(i in 2:n.linhas){</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>linhas<-c(i:n.linhas)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>resu.col2<-c(resu.col2,locais[linhas])</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>resu.col1<-c(resu.col1,rep(locais[i-1],length(linhas)))</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div></div><div><div>(mat.resu<-data.frame(resu.col1,resu.col2,distancias))#tabela com as distâncias par-a-par</div>
<div>dist.corte<-2##argumentos usado para estabelecer distância para juntar pontos</div><div>(min.dists<-mat.resu[which(mat.resu[,"distancias"]<=dist.corte),])##tabela com todos os pontos que estão a uma distância menor, entre si, que á pré estabelecida.</div>
</div><div>#note que se for juntando os pontos forma-se dois grupos</div><div><div># resu.col1 resu.col2 distancias</div><div><font color="#000066"><b>#1 p1 p2 1#p1 com p2</b></font></div><div>
<font color="#000066"><b>#8 p2 p3 2#o p2 que estava juntado com o p1 junta-se ao p3</b></font></div>
<div><font color="#000066"><b>#14 p3 p4 1</b></font><b style="color:rgb(0,0,102)">#o p3 que estava juntado com o p2 junta-se ao p4</b></div><div><b><font color="#990000">#23 p5 p6 1#idem</font></b></div>
<div><b><font color="#990000">#26 p6 p7 2</font></b></div><div><b><font color="#990000">#28 p7 p8 1</font></b></div></div><div><br></div><div>########################################</div>
<div><font color="#ff0000"><b>#Alguém, por favor, sabe me dizer como de agora em diante eu faço para saber quais que são os pontos que formam cada um dos grupos?</b></font></div><div><br></div><div>Atenciosamente,</div><div>
Luciano</div>-- <br><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><span style="color:rgb(51,51,51);font-family:'Arial Narrow',sans-serif">Luciano
F. Sgarbi</span><br><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><font color="#333333" face="'Arial Narrow', sans-serif">Mestrando em Ecologia e Evolução - UFG</font><br><blockquote style="margin:0 0 0 40px;border:none;padding:0px">
</blockquote><span style="color:rgb(51,51,51);font-family:'Arial Narrow',sans-serif">Laboratório
de Ecologia de Insetos</span><br><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><div><span style="color:rgb(51,51,51);font-family:'Arial Narrow',sans-serif">Cel.
(62)8174-2262 Lab. (62)3521-1732</span><div>
<p></p><p></p></div>
<div style="display:inline"></div></div><br>
</div>