
#olá pessoal, #Estou querendo montar uma função que me mostre pontos que estão á uma distância menor que uma pré-estabelecida. #o script e explicações seguem abaixo: ############################ ##Conjunto de dados para testar a<-rep(c(1,4),each=4) b<-c(1,2,4,5,1,2,4,5) cc<-c("p1","p2","p3","p4","p5","p6","p7","p8") mat<-data.frame(cc,a,b) rownames(mat)<-cc coord<-mat[,c(2,3)] plot(coord,pch="",xlim=c(0,6),ylim=c(0,6));text(coord[,"a"],coord[,"b"],rownames(coord))#esse é o meu conjunto de pontos. #note que se eu for juntar os pontos que estão a uma distância menor ou igual á dois, formarei dois grupos. #um formado pelos pontos: p1, p2, p3 e p4 e, outro grupo com os pontos p5, p6, p7 e p8 #################### ##iniciando os cálculos de distância library(vegan) (mat.dist<-vegdist(coord,"euclidean"))#calculo de distância entre os pontos resu.col1<-numeric(0) resu.col2<-numeric(0) (distancias<-as.numeric(mat.dist)) locais<-rownames(coord) n.linhas<-nrow(coord) ##Agora vou criar uma tabela para comparar as distâncias par-a-par for(i in 2:n.linhas){ linhas<-c(i:n.linhas) resu.col2<-c(resu.col2,locais[linhas]) resu.col1<-c(resu.col1,rep(locais[i-1],length(linhas))) } (mat.resu<-data.frame(resu.col1,resu.col2,distancias))#tabela com as distâncias par-a-par dist.corte<-2##argumentos usado para estabelecer distância para juntar pontos (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. #note que se for juntando os pontos forma-se dois grupos # resu.col1 resu.col2 distancias *#1 p1 p2 1#p1 com p2* *#8 p2 p3 2#o p2 que estava juntado com o p1 junta-se ao p3* *#14 p3 p4 1**#o p3 que estava juntado com o p2 junta-se ao p4* *#23 p5 p6 1#idem* *#26 p6 p7 2* *#28 p7 p8 1* ######################################## *#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?* Atenciosamente, Luciano -- Luciano F. Sgarbi Mestrando em Ecologia e Evolução - UFG Laboratório de Ecologia de Insetos Cel. (62)8174-2262 Lab. (62)3521-1732