<div>Ola Galera.</div><div>Bem eu estou tendo dificuldade com essa função que calcula o Minimo polígono convexo.</div><div>Eu tinha feito uma pergunta e a Nory, o Benilton , o Walmes e o Gustavo estavam me dando uma mão.</div>
<div>Mas me parece que eu fui querer ser muito economico no exemplo e não consegui realmente resolver meu problema.</div><div>Bem vou tentar dar um exemplo melhor:</div><div>Então, eu quero calcular o Minimo polígono convexo para um data-set, procurei no google e vi que o pacote adehabitatHR tem a função mcp que faz isso.</div>
<div>Começei a ler a documentação que vi no pacote(<a href="http://cran.r-project.org/web/packages/adehabitatHR/vignettes/adehabitatHR.pdf">http://cran.r-project.org/web/packages/adehabitatHR/vignettes/adehabitatHR.pdf</a>).</div>
<div>E primeiro fui replicar o exemplo dele:</div><div> </div><div>##Exemplo proposto na documentação##</div><div>library(adehabitatHR)</div><div>#coordenadas da especie 1</div><div>xy <- matrix(runif(10), ncol = 2)</div>
<div>#coordenadas da especie 2<br>xy2 <- matrix(runif(10), ncol = 2)<br>#juntando as 2</div><div>xyt <- rbind(xy, xy2)<br>xyt</div><div>#criando um id que é o nome das especies<br>id <- gl(2, 5)<br>id</div><div>#preparando um data frame<br>
idsp <- data.frame(id)<br>idsp</div><div>#função coordinates que por os valores gerados ali em cima como coordenadas no dataframe, é uma função deste pacote<br>coordinates(idsp) <- xyt<br>class(idsp)</div><div>idsp</div>
<div>#calculando o mcp e fazendo o plot<br>mcp(idsp)<br>plot(mcp(idsp))</div><div> </div><div>Até aqui tudo bem, exatamente isso que eu queria fazer, então fui tentar com meus dados que tenho aqui:</div><div> </div><div>#Meu dados estão mais ou menos assim:</div>
<div>test<-matrix(c(rep(1:3,each=5),rep(4,each=4),rep(5,each=6),runif(50)),byrow=F,nrow=25)<br>test<br>test<-as.data.frame(test)<br>test[[1]] <- as.factor(test[[1]])<br>str(test)</div><div>#tentando replicar o exemplo</div>
<div>#criando nome das especies</div><div>id<-test[,1]<br>id</div><div>#preparando dataframe<br>idsp<-data.frame(id)<br>idsp</div><div>#inserindo coordenadas<br>coordinates(idsp)<-test[,2:3]<br>#tudo ok</div><div>
idsp<br>mcp(idsp)</div><div># At least 5 relocations are required to fit an home range</div><div>#pimba, da uma msg de erro, pois tem uma especie que tem menos de 5 locais e nao pode se traçar o homerange dela por esse metodo</div>
<div>#dai veio minha necessidade de tirar ela do dataframe.</div><div>#então seguindo Benilton e Gustavo</div><div> </div><div>bleh<-rle(sort(as.character(test[, 1])))<br>bleh<-bleh$values[bleh$lengths > 4]<br>test2<-test[test[, 1] %in% bleh, ]<br>
test2</div><div>#aqui achei que era exatamente assim que tinha que se parecer o dataframe, ai la fui eu denovo</div><div>id<-test2[,1]<br>id<br>idsp<-data.frame(id)<br>idsp<br>coordinates(idsp)<-test2[,2:3]<br>idsp<br>
mcp(idsp)</div><div>#tive a mesma mensagem denovo, ai pensei que na função do cara talvez exija o level, e tem um level la que ficou vaziu, o 4.</div><div>#então eu tirei</div><div>levels(id)<br>levels(test2[,1])<br>test2[,1]<-factor(test2[,1])<br>
levels(test2[,1])<br>id<-test2[,1]<br>levels(id)<br>idsp<br>coordinates(idsp)<-test2[,2:3]</div><div>#ai parei aqui, não conseguir ver a diferença aqui do exemplo la em cima que é dado documentação do pacote.</div><div>
#Bem é isso</div><div> </div><div> </div><div> </div><div><br clear="all"><br>-- <br></div><div>Grato<br>Augusto C. A. Ribas</div>
<div> </div>
<div>Site Pessoal: <a href="http://augustoribas.heliohost.org/" target="_blank">http://augustoribas.heliohost.org/</a></div>
<div>                         <a href="http://dhost.info/augusto/" target="_blank">http://dhost.info/augusto/</a></div>
<div>Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br></div><br>