====== Vanderson Cristiano ====== {{:bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:perfio_disciplina.jpg?200|}} Vida 1: Mestrando em Ciências Biológicas pelo Depto de Ecologia. Projeto: Riqueza, abundância relativa e densidade de ninhos de meliponíneos (Apidae, Meliponini) em duas distintas áreas naturais do Parque Estadual das Fontes do Ipiranga , São Paulo. ====== Exercícios ====== [[.: Exercício 1]] [[.: Exercício2]] [[.: Exercício3]] [[.: Exercícios do 04 ao 09 ]] ====== Trabalho Final: Proposta Inicial e alternativas ====== **Plano A – Hora de morar, o que mais pesa: a casa ou a vizinhança?** Matriz de distancia de ninhos de abelhas sem ferrão Para essa disciplina, pretendo fazer uma matriz de distancia entre os ninhos de meliponíneos encontrados em uma unidade de conservação. Será especificada a espécie de meliponíneo detentora de cada ninho. Pretende-se aplicar funções para verificar se há ou não diferenças nas distancias entre os ninhos de cada (variável) espécies quando comparadas com ninhos de outras distintas espécies e com os ninhos da mesma espécie. Outra possibilidade é verificar se a densidade de ninhos e a riqueza de espécies de ninhos estão relacionadas/correlacionadas com os distintos fragmentos. Estes mesmos apresentam dois atributos: a) tipo de vegetação (área secundária inicial e área secundária tardio, em suma, menor e maior oferta de substratos para nidificação, respectivamente) e b) tamanho dos fragmentos (áreas grandes e pequenas). ** Plano B – Estipulando uma taxa mínima de alimento que garante a harmonia conforme o grau de parentesco** Pretendo verificar a interação de colônias de abelhas sem-ferrão conforme o grau de parentesco e diferentes disponibilidades de recursos. Serão realizados experimentos por pares de colônias (variável A): A1 -Colônias com alto grau de parentesco genético@ (colônias irmãs) A2- Colônias com médio grau de parentesco genético (colônias da mesma região) A3- Colônias com baixo grau de parentesco genético (colônias de outra região). @pode-se fazer um estudo genético para corroborar esse grau de parentesco Será feita uma réplica para cada par de colônias, com isso podemos controlar a disponibilidade de recursos (variável B): B1- pouca oferta de recursos @@ B2 – média oferta de recursos B2 – muita oferta de recursos @@entende-se por recursos os básicos: pólen, resina, néctar, etc. As colônias ficaram pareadas e o espaço de saída delas será em um ambiente fechado (tipo uma caixa controlada) para a anotação da taxa de agressividade (verificado através de brigas, pelo recurso, ataques despropositais, etc) Pretente-se relacionar os diferentes graus de parentesco com os (possíveis) diferentes números de ataques entre as colônias, conforme a disponibilidade de recursos. Ou, criar uma função que especifique a partir da quantidade de alimento disponível o possível número de conflitos/ataques entre as abelhas, conforme o parentesco. Por exemplo, haverá muitos ataques entre as abelhas quando houver menos que 10Nrecursos para as colônias com alto grau de parentesco, menos que 15Nrecursos para médio grau e menos que 20Nrecursos para baixo grau de parentesco. ** Plano C - Questionário – Perfil Estudantil Eleitoral** Objetivo: fazer uma função que atribua valores (soma-se números) a três distintas variáveis, conforme o preenchimento de determinados “caracteres”/respostas em cada uma das linhas de uma coluna. O usuário abre essa função e tabula os dados advindos de um questionário. Por exemplo, faríamos um questionário com 7 à 10 perguntas, ou n perguntas. “Exemplo/Pergunta 1” Quais dessas opiniões você mais concorda em relação ao uso exclusivo dos circulares apenas para alunos e funcionários regularizados? a) Concordo com o BUSP, o dinheiro economizado pode ir para melhorar outras infra-estruturas da USP b) A Universidade é pública e está em um espaço público, todos têm o direito de ir e vir! c) Precisa haver uma discussão com toda a comunidade sobre isso De um jeito prático, pensei em ir preenchendo todas as linhas com as respostas a, b e c. Pedir para buscar cada resposta (a, por exemplo) e contar. Criar uma função que atribua o item que tiver mais somatórias à determinada Chapa Eleitoral/perfil eleitoreiro. Por exemplo, se tiver mais itens “a” como resposta aparece um resultado final dizendo que o perfil é “Chapa Reação - Direita”e assim por diante. Outra forma, não sei se dá para fazer com o R, preciso estudar mais, é a seguinte: Cria-se um comando para cada linha da coluna Resposta dessa tabela/data.frame do tipo: “Resposta$Questão1=a soma-se n=1 à “Chapa Reação –Direita” “Resposta$Questão1=b soma-se n=1 à “ Chapa 27 de Outubro –Esquerda” “Resposta$Questão1=c soma-se n=1 à “Chapa Não Vou me Adaptar – Situação/Centro”. Com isso, no questionário, os teores das respostas a serem escolhidas ficam variados nas diferentes perguntas. Na linha seguinte, a resposta item “a” não se atribuiria mais um valor n=1 para ser somado na “Chapa Reação-Direita”, mas sim a outra variável/”Chapa”. ===== Comentários das propostas (Leo) ===== Apesar de interessantes e factíveis, acho que as propostas poderiam ser mais generalizadas. Por exemplo, a proposta A tem como função realizar operações usando matrizes de distâncias, certo? Isto certamente se aplica a outros problemas biológicos. Alguns pontos não ficaram claros. Uma sugestão é que sejam explicitadas as entradas e saídas das funções, e seus formatos (classe de vetor ou dados - lista, data-frame, matriz, etc.). Isto te ajudará na construção da função também. Um bom guia é pensar no "help" da função. Geralmente o que a função faz pode ser descrito e resumido em uma ou duas linhas gerais (veja exemplos nas funções existentes no R). É interessante também decompôr a função proposta em tarefas menores. Por exemplo, uma funçao poderia realizar as seguintes tarefas (pensando em sua proposta A): calcular as distâncias dois a dois a partir das coordenadas geográficas dos pontos (p.ex. ninhos), gerar as médias das distâncias dos diferentes pontos agrupados em classes (p. ex. espécies, fragmento, vegetação), comparar estas distâncias médias usando gráficos e/ou testes estatíticos. Veja que neste caso nem é preciso gerar uma matriz de distâncias. Assim podemos avaliar melhor qual o volume de trabalho que dará a construção da função, e se ela está bem dimensionada para o prazo estipulado. Sempre é bom lembrar que a função não é uma análise por si, para isto existe o script. A função também é uma concatenação de códigos que pode conter outras funções, ciclos, filtros, operações lógicas, etc., mas ela traz uma tarefa que necessita ser repetida em diferentes contextos, que vai facilitar a vida do analista ecoonomizando seu tempo e trabalho de alguma forma. ======== Trabalho Final - Conclusão ================= Abaixo tem o trabalho final,função "agilizando", além de uma função simples e acessória, função "fuso" como complementos. ======= Página de Ajuda ====== Agilizando package:nenhum R Documentation Cálculo de novos dados, realização de ANOVA e distância das localidades. Agilizando:\\ Calcula o número total , riqueza e densidade de ninhos das espécies, realiza uma análise de variância (ANOVA) e uma matriz de distância das localidades. \\ Descrição:\\ Calcula e oferece dados de saída para “numero total de espécies”, “riqueza de espécies” e “densidade de ninhos dessa espécie” a partir de dados brutos de campo para cada indivíduo. \\ Realiza ANOVA e retorna gráficos que representam a correlação de cada uma das variáveis isoladas com o tamanho do fragmento e uma matriz de distância eucladiana dos locais dos ninhos/morada dos indivíduos a partir das coordenadas geográficas. \\ Usage: Agilizando(x) \\ Argumentos: x: dataframe com 5 colunas que tenha: \\ 1ª coluna- a espécie/ninho encontrado (identificacação da mesma) \\ 2 ª coluna - a longitude em UTM da coordenada do local \\ 3 ª coluna – a latitude em UTM da coordenada do local \\ 4 ª coluna – o fragmento onde se encontra a espécie/ninho \\ 5 ª coluna – o tamanho da área do fragmento \\ Detalhes: \\ A própria função, no decorrer do seu percurso, renomea os nomes das colunas para: \\ "Ninho","Long","Lat","Fragmento","Area". A matriz de distância é salva como um arquivo no diretório, podendo ser acessada.Outros dados tabmém são salvos em arquivos txt. Valores: A matriz de distância utiliza o método eucladiano. Notas: a)Caso necessitar os dados das coordenadas para UTM, utilize os seguintes conversores:\\ http://splink.cria.org.br/conversor \\ http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html \\ b)É preciso muitas saber o fuso para conversão. \\ Para facilitar utilize a função acessória “fuso()”, criada para facilitar a sua vida. \\ http://ecologia.ib.usp.br/bie5782/lib/exe/fetch.php?media=bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:fuso_funcao_acessoria.txt \\ De uma maneira mais trabalhosa é possível utilizar a seguinte fórmula: \\ f = 30 +/- dado/6 \\ sendo que, f= número fuso; dado=longitude.\\ Para dados do Oeste subtraímos (-), para Leste somamos (+) \\ Exemplo: \\ Dado dado= 47º22’17” W \\ dado/ 6 = – 7,89 = – 7 \\ f = 30 + dado= 30 + (– 7) = 23 \\ Autor: Vanderson Cristiano de Sousa vandersonsousa@gmail.com Referencias \\ http://ecologia.ib.usp.br/bie5782/doku.php (apostilas e tutoriais) \\ Sobre a transformação do fuso: \\ http://www.ufrb.edu.br/joanito/index2.php?option=com_docman&task=doc_view&gid=68&Itemid=27 \\ http://www.ltc.ufes.br/geomaticsee/Aula12_Geom%C3%A1tica_Cartografia%203.pdf \\ \\ Veja também:\\ fuso() ## função acessória criada para a identificação do fuso \\ \\ Exemplos ''x = read.csv("projeto.csv", header=TRUE,sep=";",dec=",", as.is=TRUE)'' ======= Função (SCRIPT FINAL) ====== agilizando(x) agilizando <- function(x)\\ {\\ cat("\n","\t","OBS1: Os novos dados calculados, os resultados da Anova foram salvos no diretorio como Resultado_Anova.csv e Dados_Calculados.csv ","\t","\n")\\ colnames(x)<-c ("Ninho","Long","Lat","Fragmento","Area")\\ x$Fragmento<-as.factor(x$Fragmento)\\ x$Ninho<-as.factor(x$Ninho)\\ x.local<- table(x$Ninho,x$Fragmento)##Contando spp por local (fragmento) e selecionando uma localidade (fragmento)\\ x.local\\ total.spp=apply(x.local,2,sum)##calculando o total de individuos/ninhos\\ total.spp\\ ##calcular o número de espécie por local\\ x.spplocal=x.local>0 \\ riqueza=apply(x.spplocal,2,sum)## calculando a riqueza \\ riqueza\\ ##PEGANDO OS TAMANHOS DOS FRAGMETNOS PARA CALCULAR A DENSIDADE\\ tamanho.fragmentos<- aggregate(x=x$Area, by=list(x$Fragmento), FUN=mean)\\ Area.ha<-c(tamanho.fragmentos[,2]/10000)\\ dados.totais<- data.frame(Area.ha,riqueza,total.spp)\\ dados.totais\\ colnames(dados.totais)<-c("Area.ha","Riqueza","Total")\\ ### agora sim calculando a densidade por fragmento e já transformando em ninhos por hectare\\ dados.totais$Densidade=(dados.totais$Total/dados.totais$Area.ha)\\ dados.totais\\ ### plotando o grafico de dispersao e achando os coeficientesp por regressão linear\\ par(mfrow=c(2,2))\\ par(cex.axis=1.5,cex.lab=1.2, bty="l")\\ plot(dados.totais$Area.ha~dados.totais$Riqueza,xlab="Riqueza spp.", ylab="Area ha",main="Riqueza pela Área")\\ A1<-lm(dados.totais$Area.ha~dados.totais$Riqueza)\\ abline(A1, col="red") \\ plot(dados.totais$Area.ha~dados.totais$Total,xlab="N Indivíduos/NInhos Total", ylab="Area ha",main="N Indivíduos/Ninhos Total pela Área")\\ A2<-lm(dados.totais$Area.ha~dados.totais$Total)\\ abline(A2,col="green")\\ plot(dados.totais$Area.ha~dados.totais$Densidade,xlab="Densidade", ylab="Area ha",main="Densidade pela Área")\\ A3<-lm(dados.totais$Area.ha~dados.totais$Densidade)\\ abline(A3,col="blue")\\ B1<-lm(dados.totais$Area.ha~dados.totais$Riqueza+dados.totais$Total)\\ abline(B1)\\ anova(B1)\\ resultado1<- anova(B1)\\ resultado2<-dados.totais\\ write.csv2(resultado1, file="Resultados_Anova.csv")\\ write.csv2(resultado2, file="Dados_Calculados.csv")\\ matriz.a<- matrix(NA,nrow=nrow(x),ncol=2)\\ matriz.a[,1]<-as.numeric(x[,2])\\ matriz.a[,2]<-as.numeric(x[,3])\\ row.names(matriz.a)<- x[,1]\\ matriz.a #matrix com dados LONG e LAT em UTM\\ distancia<-matrix(NA,nrow=nrow(matriz.a),ncol=ncol(matriz.a),dimnames=dimnames(matriz.a))\\ distancia[,1]<- matriz.a[,1] \\ distancia[,2]<- matriz.a[,2] \\ distancia\\ saida<-dist(distancia) #Cálculo da matriz de distancia\\ saida\\ resultado3<-as.matrix(saida)\\ write.csv2(resultado3, file="Matriz_Distancia.csv")\\ cat("\t","\n","\t","OBS2: Para visualizar abra a matriz de distancia que foi salva no seu diretorio como Matriz_Distancia.csv","\t","\n","\n")\\ return (resultado1)\\ }\\ {{:bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:help_agilizando.txt|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:agilizando.txt|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:projeto.txt|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:help_fuso_função_acessoria.txt|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:fuso_funcao_acessoria.txt|}}