[R-br] Problema em loop

Sandro Sperandei ssperandei em hotmail.com
Quinta Abril 12 10:31:59 BRT 2012


Alexandre,

Notei que seu número de parcelas é sempre uma potência de 2. Correto?

Se for esse o caso, atribua á variável "número de parcelas" simplesmente o 
valor de 2^k.

Funcionou?

S



-----Mensagem Original----- 
From: ASANTOS
Sent: Thursday, April 12, 2012 10:20 AM
To: r-br em listas.c3sl.ufpr.br
Subject: [R-br] Problema em loop

Bom dia pessoal,

      Estou tentando dividir uma área em 2, 4, 8, 16, 32, 64, 128, 256,
512, 1024, e 2048, para tira o CV entre as parcelas e armazenar o
resultado em write.table(cv2, file ="area1.mod", row.names=F,append=T).
Bom, estou conseguindo calcular um a um, mais eu gostaria de otimizar  e
fazer um loop em um vetor que especifica o número de parcelas, como em:

n.parc<-c(2,4,8,16,32,64,128,256,512,1024,2048)##Número de parcelas

for(k in 1:length(n.parc))

mas não sei porque razão não estou conseguindo fazer esse loop, já
tentei com n.parc e n.parc[k] e nada, segue a minha rotina completa:

####Divisão em 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 parcelas

n.parc<-c(2,4,8,16,32,64,128,256,512,1024,2048)##Número de parcelas

for(k in 1:length(n.parc)){

at2<-at/k
parc2<-round(sqrt(at2))
N_S=seq(p0[1], by=parc2, length.out=10)##Define o centro das parcelas
L_O=seq(p0[2],by=parc2, length.out=10)
grid0 <- expand.grid(N_S=seq(p0[1], by=parc2, length.out=2),
L_O=seq(p0[2],by=parc2, length.out=2))#transformar em área essas medidas
do centro de parcela
grid=GridTopology(c(304404,  6468774), c(parc2,parc2), c(10,10))
grid=SpatialGrid(grid=grid)
plot(grid)
points(ninhos)
lines(limite)
##Passando para objetos da classe Spatial
#Pontos
pontos <- SpatialPoints(cbind(ninhos$x,ninhos$y))
pontos<- SpatialPoints(list(ninhos$x,ninhos$y))
pontos<- SpatialPoints(data.frame(ninhos$x,ninhos$y))

##Limite da área
borda=SpatialPolygons(list(Polygons(list(Polygon(limite)),"limite")))
##Plotando
plot(borda)#borda
points(pontos,col='grey')#Pontos
lines(grid,col='blue')#Malha
#remover o que esta fora do limite
fullgrid(grid)=FALSE
clip<-overlay(grid,borda)##Jogando o limite sobre a malha
sel.grid <-grid[!is.na(clip),]##Retirando os NA's que correspondem a
malha fora do limite
points(sel.grid, col='blue')#ver o resultado final grafico
class(sel.grid)  ## SpatialPixels
ap3 <- as.SpatialPolygons.SpatialPixels(sel.grid)
table(over(pontos, ap3)) ##Frequencia em cada parcela
z<-table(over(pontos, ap3)) #contar quantos pontos tem em cada parcela
z<-as.data.frame(z) #formato somente com colunas validas
cc<- SpatialPoints(cbind(grid0$N_S,grid0$L_O))#
cc<- SpatialPoints(list(grid0$N_S,grid0$L_O))
cc<- SpatialPoints(data.frame(grid0$N_S,grid0$L_O))
clip2<-overlay(cc,ap3)
sel.cc<-cc[!is.na(clip2),]#seleção de pontos que nao estao dentro da area
#criar matriz nula
coords<-NULL#matriz sem valor para criar os pontos
coords<-sel.cc[1:length(sel.cc)] #numero para cada parcela, ate o final
do comprimento do vetor
coords<-as.data.frame(coords)#transformar em data frame
Var1<-1:length(sel.cc)#criar novo objeto para comparação, referenciando
a coordenada do centroide
coords<-cbind(coords,Var1) #Var1= numero das parcelas
myList <- list(coords, z)#tabela com qtdade dentro de coords e de z
final<-merge(coords, z, by.x='Var1', by.y='Var1', all.x=TRUE,
all.y=TRUE)#comando para mostrar os NA para krigagem ordinal(limitação
do software, não mostra as parcelas que tem 0 ninhos)
final<-final[,-1]#não precisa da 1a coluna
cv2<-sqrt(var(final$Freq))/mean(final$Freq)
write.table(cv2, file ="area1.mod", row.names=F,append=T)
result=read.table("area1.mod",header=F)
}
##########################################################


Alguém poderia me dar uma help,

Obrigado,

-- 
Alexandre dos Santos
Engenheiro Florestal, Dr.
Universidade Federal de Lavras
Departamento de Entomologia
Laboratório de Entomologia Florestal
Caixa Postal 3037
37200-000 - Lavras/MG
Fone: +55 (35) 9223-0304

_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código 
mínimo reproduzível. 



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