[R-br] Removendo pontos dentro de um grid
Alexandre dos Santos
alexandresantosbr em yahoo.com.br
Sexta Abril 22 12:08:38 BRT 2011
Obrigado Prof.Paulo, Ivan e Gustavo,
Mais não é bem isso ainda, na verdade eu tenho uma matriz de
coordenadas xp e yp, mas usando o exemplo anterior ainda para explicar
melhor,
Com uma matriz de pontos equidistantes em 10 metros, sendo,
> head(malha10)
xp yp
1 15 15
2 25 15
3 35 15
4 45 15
5 55 15
6 65 15
Quero agora utilizar somente as coordenadas que estão equidistantes em
20 metros, então no meu novo objeto malha20, eu não teria as linhas 2, 4 e 6
do exemplo anterior. Estou tentando estabelecer uma rotina, pois tenho
vários bancos de dados e vou reorganizar em, por exemplo, para as
coordenadas 10x20metros, 20x20m, 20x30m, e assim por diante, estou tentando
fazer algo como:
malha20<-malha10
if(malha20[malha20$xp[2]-malha20$xp[1]<20,]) {malha20[malha20$xp[2]=0,]}
if(malha20[malha20$yp[2]-malha20$yp[1]<20,]) {malha20[malha20$yp[2]=0,]}
malha20<-malha20[malha20$xp!=0 & malha20$yp!=0]
Mais minha ignorância em programação não esta me termitindo
selecionar corretamente os elementos da linha dentro da coluna, mais quando
faço para as duas primeiras linhas da primeira coluna, como :
if(malha20$xp[2]-malha20$xp[1]<20) {malha20$xp[2]=0}
Funciona,
Obrigado ,
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
-----Original Message-----
From: r-br-bounces em listas.c3sl.ufpr.br
[mailto:r-br-bounces em listas.c3sl.ufpr.br] On Behalf Of Paulo Justiniano
Sent: sexta-feira, 22 de abril de 2011 10:22
To: r-br em listas.c3sl.ufpr.br
Subject: Re: [R-br] Removendo pontos dentro de um grid
Nests caso pensando no grid de pontos como uma matriz vc quer pegar os
pontos que estao nas posicoes impares de linhas e colunas
ind <- outer(2*(1:10)-1, 2*(1:10)-1, function(i,j) i+ 20*(j-1)) malha20 <-
malha10[ind,]
On Fri, 22 Apr 2011, Alexandre dos Santos wrote:
>
> Bom dia pessoal,
>
>
>
> Estou criando uma malha de pontos da seguinte forma:
>
> p0<- c(15,15)#Ponto inicial
>
> malha10<- expand.grid(xp=seq(p0[1], by=10, length.out=20),
> yp=seq(p0[2], by=10, length.out=20))#Criando um grid de pontos a cada
> 10 metros
>
> plot(malha10)# Visualizando a malha de postos
>
>
>
> Agora, gostaria das coordenadas dos pontos a cada 20m, à partir de p0,
> mas gostaria de manipular o objeto já criado malha10, sem ter que
>
> fazer um novo objeto expand.grid(... by=20), na verdade, gostaria de
> criar um novo objeto malha20, mas fazendo malha20=malha10 e após
> remover as coordenadas dos pontos do objeto malha10 que não satisfaçam
> a condição , tentei um
> outer() para descobrir as distancias entre todos os pontos e após
> impor uma condição =20, mas não estou conseguindo não, alguem poderia
> dar um help,
>
> Obrigado,
>
>
>
>
>
> 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
>
>
>
>
>
Mais detalhes sobre a lista de discussão R-br