[R-br] ajuda loop

Luciano F. Sgarbi luciano.f.sgarbi em gmail.com
Terça Agosto 21 18:22:43 BRT 2012


Olá,
Seria uma função para recortar uma quadricula dentro de um intervalo de
coordenadas?
Se for, talvez isso que segue abaixo possa ajudar:

#---------------------------------------------------------------------------

coords<-matrix(sample(0:100,200,r=T),100,2);colnames(coords)<-c("Lat","Lon")

coordinates<-c(0,50,50,100)#Sequencia de valores:
#1-Latitude Minima
#2- Latitude Maxima
#3- Longitude Minima
#4- Longitude Maxima

coords.1<-coords[c(which((coords[,"Lat"])>=(coordinates[1]))),]#.lat.min
coords.2<-coords.1[c(which((coords.1[,"Lat"])<=(coordinates[2]))),]#.lat.max
coords.3<-coords.2[c(which((coords.2[,"Lon"])>=(coordinates[3]))),]#.long.min
coords.final<-coords.3[c(which((coords.3[,"Lon"])<=(coordinates[4]))),]#.long.max
#Aqui no final saem somente os pontos que estão no intervalo determinado
acima

#---------------------------------------------------------------------------


Espero ter ajudado.
Abraços
Luciano



2012/8/21 Heloíse Pavanato <helopavanato em gmail.com>

> Boa tarde a todos,
>
> Estou com um problema em um loop.
> Tenho duas matrizes de 480 por 216 com latitudes e longitudes e quero
> selecionar dentre estas somente as que estão dentro de determinado limite
> (latLim e lonLim), que são pares.
>
> Estou usando:
>
> lat <- read.table(file="lat.txt")
> lon <- read.table(file="lon.txt")
>
> library(R.matlab)   # para ler .mat
> sx <- readMat('SX.mat',maxLength=NULL,
> fixNames=TRUE,verbose=F,sparseMatrixClass='SparseM')
>
> # limite de longitude
> lonSX <- sx$SX[3,1,1]
> lonlim <- as.numeric(lonSX$Lon[1:130])
>
> # limite de latitude
> latSX <- sx$SX[4,1,1]
> latlim <- as.numeric(latSX$Lat[1:130])
>
> ####
> latA <- lonA <- matrix(NA,480,216)
>
> for(i in 1:(dim(lat)[1])){
>     for(j in 1:(dim(lon)[2])){
>         if (c(lat[i,j],lon[i,j]) > min(latLim,lonLim)      # seleciona a
> lat/lon só para a área do polígono
>         & c(lat[i,j],lon[i,j]) < max(latLim,lonLim))
>         latA[i,j] <- lat[i,j]
>         lonA[i,j] <- lon[i,j]
>       }
>     }
>
> Mas a sintaxe não está correta pois eu não estou sabendo dizer que cada
> par latLim,lonLim é um delimitador de lat e lon.
>
> Se alguém puder me dar uma mãozinha, por favor.
>
> Os arquivos estão em anexo.
>
> Obrigada,
> Heloise
>
> ---
> Oc. Heloise Pavanato
> Pós-graduação em Oceanogra Biológica
> Instituto de Oceanografia
> Universidade Federal do Rio Grande
>
> _______________________________________________
> 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.
>



-- 

Luciano F. Sgarbi

Mestrando em Ecologia e Evolução - UFG

Laboratório de Ecologia de Insetos

Cel. (62)8174-2262   Lab. (62)3521-1732
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120821/35926842/attachment.html>


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