[R-br] Frequência dentro de parcelas selecionadas com table()
Paulo Justiniano
paulojus em leg.ufpr.br
Quarta Novembro 16 15:25:59 BRST 2011
Alexandre
sem fornecer codigo especifico aqui vao algums ideias de por ojnde eu
comecaria
algumas alternativas caso nao queira programar isto:
1. represetnar os dados no formato sp. Um como SpatialPoints
e outro como SpatialGrid
Depois a operaçõa de overlay (over() ) com tabloe vai te fornecer as
contagens
2.
este problema é o mesmo do chamado "quadrat counts"
que é tratado em pacotes como spatstat (oficial)
ou Rcitrus (nao oficial)
aqui vai um exemplinho usando o 1o
require(spatstat)
## Carregando um conjunto de dados
data(swedishpines)
X <- swedishpines
plot(X)
summary(X)
## Contagem de Quadrats
Q <- quadratcount(X, nx = 4, ny = 3)
Q
plot(X)
plot(Q, add = TRUE, cex = 2)
On Tue, 15 Nov 2011, ASANTOS wrote:
> Boa tarde pessoal,
>
> Estou tentando calcular a frequência de pontos dentro de parcelas
> selecionadas em uma área através da função table() e estou tendo
> dificuldades,
> bom consegui calcular para todas as parcelas da área mais não estou
> conseguindo utilizar o comando para selecionar algumas parcelas de interesse
> fiz:
>
> require(splancs)
> #Geração dos pontos aleatórios
> x <- runif(n=500,min=0, max=20)
> y <- runif(n=500,min=0, max=20)
>
> plot(x=x,y=y,axes=F, xlab="", ylab="",
> xlim=c(-1,20),ylim=c(0,21))##Plota os pontos
>
> ##Divide em parcelas
> segments(x0=rep(0,20),y0=0:20,
> x1=rep(20,20),y1=0:20, col="gray", lty=2)
> segments(x0=0:20,y0=rep(0,20),
> x1=0:20,y1=rep(20,20),col="gray", lty=2)
>
> pt0 <- c(0.5,0.5)##Define o centro da primeira parcela
>
> N_S=seq(pt0[1], by=1, length.out=20)##Define o centro das parcelas
> L_O=seq(pt0[2],by=1, length.out=20)
> grid0 <- expand.grid(N_S=seq(pt0[1], by=1, length.out=20),
> L_O=seq(pt0[2],by=1, length.out=20))
>
> ##Cria o limite da área
> limx<-c(2.5,2.5,18,18)
> limy<-c(2.5,18,18,2.5)
> lim=cbind(limx,limy)
> lim<-as.matrix(lim)
> polygon(lim)##Desenha o limite
>
> grid0<-as.matrix(grid0)
> m.int<-pip(grid0,lim,out=FALSE)##Seleciona as parcelas dentro do limite
> points(m.int,col="blue", pch=10)
>
> ##Frequencia em cada parcela
> x.parcela <- cut(x,breaks=0:20)
> y.parcela <- cut(y,breaks=0:20)
> contag <- data.frame(table(x.parcela,y.parcela))
>
> Aqui esta minha dificuldade, se uso o cut(), só consigo dividir a área toda,
> porém não estou conseguindo selecionar as parcelas localizadas dentro do
> limite,
> alguém poderia me dar uma luz,
> Obrigado,
>
> --
> Alexandre DOS SANTOS
> Engenheiro Florestal, Msc.
> Laboratório de Pragas Florestais
> Departamento de Entomologia
> Universidade Federal de Lavras
> Caixa Postal 3037
> 37200-000 - Lavras - Minas Gerais - Brasil
> Tel: +55 35 92230304
>
> _______________________________________________
> 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