[R-br] Problema com apply em loop

Alexandre dos Santos alexandresantosbr em yahoo.com.br
Quinta Junho 16 13:46:09 BRT 2011


  Boa Tarde Pessoal,

 

           Estou reorganizando minhas coordenadas geográficas (pontos) para
calcular todas os arranjos possíveis  de pontos em diferentes distâncias
(código abaixo), até aí tudo bem, mas o problema é quando utilizo o comando
apply(), dentro do loop para remover as linhas que contem NA’s e ficar
somente com as coordenadas em X com correspondencia em Y (xyc) e
posteriormente adicionar os resultados  em maille.  Neste objeto maille que
guarda o resultado de cada loop se eu adiciono c(xyc,n.pontos,Bk[m]) o
resultado fica todo bagunçado, com n.pontos na mesma coluna que xyc , mais
se deixo só xyc o resultado fica correto, tem alguma forma de fazercom que
xyc,n.pontos,Bk[m] apareça  individualmente em cada maille[i,],

 

Obrigado,

 

 

############################################################################
###################

pt0 <- c(725990,7912746)#Ponto inicial

h.b.a.f.p1<- expand.grid(latitude=seq(pt0[1], by=25,
length.out=12),longitude=seq(pt0[2], by=25, length.out=12)) ##Malha

x<-c(20,100,110,144)

h.b.a.f.p1<-h.b.a.f.p1[-(x),]##Removendo alguns pontos para criar distâncias
inexistentes

 

Bk=seq(0,50,25)###Diferentes distâncias entre pontos amostrais

 

maille<-NULL

 

for(m in 1:length(Bk)){

 

Px<-c(h.b.a.f.p1[,1])###Coordenadas X

Py<-c(h.b.a.f.p1[,2])###Coordenadas Y

 

Pxy<-cbind(Px,Py)

plot(Pxy)

 

sqx<-seq(min(Px)+Bk[m],max(Px),25)###Sequência de distancias em X

sqy<-seq(min(Py)+Bk[m],max(Py),25)###Sequência de distancias em Y

 

for(j in 1:length(Px)){

for(k in 1:length(Py)){

 

n.pontos<-1:length(Px)

xx=sqx[j] ###Coordenada X presente ou não nesta posição

yy=sqy[k] ###Coordenada Y presente ou não nesta posição

xyc=cbind(xx,yy)

xyc=xyc[apply(xyc, 1, function(x)!any(is.na(x))), drop=F] ###Remove linhas
se NA

maille=rbind(maille,c(xyc,n.pontos,Bk[m]))###Resultado

}}}

#

 

 

Alexandre dos Santos

Ingenieur forestier, Msc.

INRA- Biostatistique et Processus Spatiaux (BioSP)

Domaine Saint-Paul
Site Agroparc 
84914 -  Avignon - France
Tél. : +33 (0)6 87 95 16 29

 

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110616/b80e613c/attachment.html>


Mais detalhes sobre a lista de discussão R-br