
Bom, não entendi então. Do jeito que eu mandei ele tira as linhas 2, 4, 6, ... head(malha10[(malha10$xp - p0[1]) %% 20 == 0 & (malha10$yp - p0[2]) %% 20 == 0,]) Para controlar as distâncias, basta mudar o divisor: 30 x 10m: head(malha10[(malha10$xp - p0[1]) %% 30 == 0 & (malha10$yp - p0[2]) %% 10 == 0,], n = 20) Abraços, Gustavo. 2011/4/22 Alexandre dos Santos <alexandresantosbr@yahoo.com.br>:
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@listas.c3sl.ufpr.br [mailto:r-br-bounces@listas.c3sl.ufpr.br] On Behalf Of Paulo Justiniano Sent: sexta-feira, 22 de abril de 2011 10:22 To: r-br@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
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br