Minimum Convex Polygon Estimator - mcp {adehabitatHR}

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