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 <[email protected]>: > 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: [email protected] > [mailto:[email protected]] On Behalf Of Paulo Justiniano > Sent: sexta-feira, 22 de abril de 2011 10:22 > To: [email protected] > 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 > [email protected] > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > _______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
