====== Nathalia Monalisa ====== {{:bie5782:01_curso_atual:alunos:trabalho_final:nathaliamonalisa:45008425_10215171966751275_4545739411232391168_n.jpg?200|}} ==== Perfil ==== Doutoranda em Ecologia no Instituto de Biociências, USP.\\ Integrante do Laboratório de Ecologia de Florestas Tropicais (LABTROP/USP). Meu perfil: [[http://labtrop.ib.usp.br/doku.php?id=equipe:nathaliamonalisa:start]] Lattes: [[http://lattes.cnpq.br/7276271320727179]] ---- ==== Exercícios ==== [[.:exec]] ---- ==== Trabalho Final ==== **Proposta A: função competition()** **1.Descrição da proposta:** Considerando que as interações competitivas constituem uma das principais forças estruturadoras de comunidades de plantas, a função proposta tem como objetivo calcular um índice que informa a intensidade de competição que uma árvore sofre das árvores vizinhas (neighborhood crowding effect). Para isso, assume que o efeito competitivo sobre um indivíduo arbóreo focal é uma função da identidade, do tamanho e da distância dos seus vizinhos imediatos. O índice que estima os efeitos espécie-específicos (ou seja, o efeito de cada espécie sobre esse indivíduo) é calculado pela expressão (adaptado de Adler et al. 2010¹): {{ :bie5782:01_curso_atual:alunos:trabalho_final:nathaliamonalisa:w_expressao.png?320 |}} Onde:\\ • //W//ijm: efeito competitivo que um indivíduo i da espécie j experimenta dos vizinhos da espécie m;\\ • //α//jm: coeficiente da escala espacial de efeito. Determina a escala espacial dentro da qual vizinhos de uma espécie m exercem efeitos sobre as taxas vitais de vizinhos da espécie j (calculado previamente a partir de modelos de regressão). É importante ressaltar que não necessariamente αjm = αmj, exceto nos casos de indivíduos da mesma espécie (onde m = j). Na expressão, esse coeficiente representa o fator de multiplicação da distância;\\ • //d//: distância do vizinho k da espécie m ao indivíduo focal;\\ • //u//: tamanho do indivíduo k da espécie m;\\ • //k// = indexa todos os indivíduos competidores da espécie m.\\ O efeito total da competição sobre o indivíduo (Wij) é obtido pela soma dos efeitos que ele sofre de todas as espécies ao seu redor (calculado pela expressão anterior), ponderado pela abundância. E o valor obtido será diretamente proporcional ao tamanho dos vizinhos competidores, mas inversamente proporcional à distância deles. Ou seja, quanto maior ou mais próximo o vizinho, maior o efeito de competição sofrido. A figura abaixo representa esta ideia: {{ :bie5782:01_curso_atual:alunos:trabalho_final:nathaliamonalisa:w_esquema.png?260 |}} **1.2.Onde a função pode ser usada:** o cálculo desse índice pode ser incorporado em modelos espacialmente explícitos de crescimento e sobrevivência que levam em consideração o efeito local das interações competitivas sobre as taxas vitais das espécies (como por exemplo em Chu & Adler, 2015² e Uriarte et al., 2010³). **2.Entradas:** O usuário deve fornecer :\\ a) Um dataframe com as linhas correspondendo aos indivíduos arbóreos (n° de observações) e as colunas correspondendo aos seguintes atributos:\\ • individuo: variável contendo um rótulo de identificação único para cada indivíduo (ou seja, dois indivíduos não podem receber a mesma numeração);\\ • species: variável contendo o nome ou o código da espécie;\\ • tamanho: variável numérica contendo o diâmetro a altura do peito (cm) do indivíduo;\\ • x: variável com a coordenada espacial no eixo X;\\ • y: variável com a coordenada espacial no eixo Y;\\ b) Uma matriz de coeficientes de escala espacial de efeito (α) entre todos os pares de espécies. As espécies que exercem os efeitos (m) devem estar nas linhas e as espécies que recebem o efeito (j) devem estar nas colunas. **3.Saídas:** a função deve retornar dois outputs:\\ a) um data frame com o valor do índice de competição para cada indivíduo da comunidade (Wij);\\ b) um dotplot indicando os valores do índice e a localização dos indivíduos. **4.Pseudocódigo:**\\ a) Realiza um teste de premissas (teste lógico) para conferir se os objetos pertencem à classe correta. Se sim, prossegue a execução do código. Se não, exibe uma mensagem de erro sugerindo a correção;\\ b) Calcula uma matriz de distância entre todos os pares de indivíduos com base nas coordenadas geográficas;\\ c) Usa um loop para calcular o somatório do efeito de todos os indivíduos de uma mesma espécie (Wijm) sobre o indivíduo focal i;\\ d) Calcula a soma ponderada dos efeitos de todas as espécies para encontrar o efeito total (Wij) sobre o indivíduo focal i;\\ e) Exporta o dataframe com os valores do índice de competição para o diretório de trabalho;\\ f) Plota o gráfico. **5.Pacote requerido**:\\ plotly **Referências bibliográficas:** \\ ¹Adler, P. B., Ellner, S. P., & Levine, J. M. (2010). Coexistence of perennial plants: An embarrassment of niches. Ecology Letters, 13(8), 1019–1029. doi:10.1111/j.1461-0248.2010.01496.x \\ ²Chu, C., & Adler, P. B. (2015). Large niche differences emerge at the recruitment stage to stabilize grassland coexistence. Ecological Monographs, 85(3), 373–392. doi:10.1890/14-1741.1 \\ ³Uriarte, M., Swenson, N. G., Chazdon, R. L., Comita, L. S., John Kress, W., Erickson, D., … Thompson, J. (2010). Trait similarity, shared ancestry and the structure of neighbourhood interactions in a subtropical wet forest: Implications for community assembly. Ecology Letters, 13(12), 1503–1514. doi:10.1111/j.1461-0248.2010.01541.x ---- **Proposta B: função bufunfa.ppg()** **1.Descrição da proposta:** todos sabemos que a vida financeira dos pós-graduandos residentes na cidade de São Paulo (e em todas as outras cidades brasileiras) não é lá muito saudável. E que precisamos fazer uma ginástica diária para garantir o cafezinho nosso de cada dia. Por isso é importante manter o controle dos gastos ao longo do mês e entender quanto e onde investimos as nossas escassas moedas que sobram do bandejão. Assim, o objetivo é desenvolver uma função que auxilie os pós-graduandos a administrarem suas economias mensais, gerando estatísticas e relatórios detalhados das suas movimentações financeiras. **1.2. Onde a função pode ser usada:** em qualquer máquina operada por pós-graduandos nerds interessados em programação e que estejam seriamente preocupados com as suas vidas financeiras. Mas não recomendo o uso para pessoas excessivamente ansiosas ou hipocondríacas, pois o recorrente saldo no vermelho pode causar fortes efeitos colaterais! (LOL) **2.Entradas:** o usuário deve fornecer como base de dados um dataframe onde as linhas representam os dias (variando de 0 a 31) em que foram registrados gastos, enquanto as colunas representam os seguintes atributos: \\ • descrição: produto(s) ou serviço(s) adquirido naquele dia; \\ • valor: custo da despesa; \\ • categoria: cada item deve ser classificado de acordo com uma das seguintes categorias de gasto: transporte, saúde, supermercado, bandejão, despesas de casa, lazer, higiene pessoal, papelaria, outros; \\ • necessidade: cada gasto deve ser classificado em: //essencial// (itens estritamente necessários, como café e miojo) ou //supérfluo// (itens desnecessários e que poderiam ser evitados, como roupas e sapatos 8-o); \\ Exemplo:\\ {{ :bie5782:01_curso_atual:alunos:trabalho_final:nathaliamonalisa:head_dados.png?450 |}}: **2.1.Argumentos:** bufunfa.ppg(dados, bolsa, fapesp,tip)\\ • //dados// = base de dados descrita no item anterior (dataframe) \\ • //bolsa// = variável do tipo string que informa o nível de formação do pós-graduando (“mestrando” ou “doutorando”). Esse argumento será utilizado para inferir o valor da bolsa recebida pelo pós-graduando. Por padrão, mestrandos recebem RS1500 e doutorandos recebem RS2200. \\ • //fapesp// = variável lógica que informa se o (sortudo do) aluno é bolsista fapesp. Se sim, o valor da bolsa será corrigido. \\ • //tip// = variável numérica que informa se o pós-graduando teve alguma renda extra naquele mês, além da bolsa. O valor extra será somado ao valor da bolsa (inferida a partir do argumento anterior) de onde serão deduzidas as despesas diárias para calcular o saldo do mês. O usuário deverá preencher a célula com 0 se não houve entradas extras. **3.Saídas:**\\ a) Tabela com o valor total das despesas para cada categoria de gasto;\\ b) Tabela com o valor das despesas essenciais versus despesas supérfluas;\\ c) Barplot com a porcentagem de despesas em cada categoria de gasto;\\ d) Gráfico do decaimento da renda total ao longo dos dias do mês;\\ e) Saldo do mês acompanhado de uma mensagem motivacional para estimular o pós-graduando a gerir melhor suas economias. **4.Pseudocódigo:**\\ a) Realiza um teste de premissas (teste lógico) para conferir se os objetos e variáveis pertencem à classe correta. Se sim, prossegue a execução do código. Se não, retorna uma mensagem de erro sugerindo a correção;\\ b)Preenche as células vazias com **na**\\ c)Faz um teste lógico para as variáveis “bolsa” e “ fapesp” e atribui o valor da bolsa ao objeto ‘entradas’\\ Se bolsa=mestrando & fapesp=FALSE, então entradas = 1500\\ Se bolsa=doutorando & fapesp=FALSE, então entradas = 2200\\ Se bolsa=mestrando & fapesp=TRUE, então entradas = 2168.70\\ Se bolsa=doutorando & fapesp=TRUE, então entradas = 3726.30\\ d)Se o argumento tip > 0, soma a quantia ao valor da bolsa no objeto ‘entradas’\\ e)Soma o total de gastos da coluna “dados$valor” e atribui ao objeto ‘saidas’\\ f)calcula o saldo do mês (entradas – saídas) e guarda em um objeto chamado ‘saldo’\\ g)Calcula a tabela de gastos por categoria usando a função tapply\\ h)Calcula a tabela de gastos essenciais vs. supérfluos usando a função tapply\\ i)Calcula a proporção de cada gasto em relação ao total e guarda na coluna dados$prop\\ j)Abre a janela gráfica e passa os parâmetros gráficos\\ k)Plota o gráfico de barras (barplot) com a porcentagem de gastos em cada categoria\\ l)Plota o gráfico de decaimento da renda ao longo dos dias\\ m)Verifica o saldo com um teste lógico e printa uma mensagem motivacional de acordo com o seu valor:\\ • Se saldo =< 0: então [escreve em fonte vermelha] “Danger!Danger!Danger!Seu saldo do mês é (saldo). Desse jeito você precisará trabalhar por mais 3 reencarnações para poder se aposentar!Trate de vender alguns livros encalhados para complementar a sua renda. m(” \\ • Se saldo > 0 & saldo < 300, então [escreve em fonte azul] “Muito bem, tigrão. Seu saldo do mês é (saldo). Você está ficando bom com as economias, hein?Mas ainda há um longo caminho até a aposentadoria. Continue trabalhando firme e a partir de agora cobre mais caro para colocar os trabalhos dos IC’s nas regras da ABNT que você vai chegar lá. :-? ” \\ • Se saldo >= 300: [escreve em fonte verde] “WoooW!Seu saldo do mês é (saldo). Você é mesmo o mestre dos magos, ou melhor, dos malabarismos!Se continuar nesse ritmo você estará aposentado dentro de 127 anos. Parabéns!Assim você vai longe... 8-)”\\ **5.Dificuldades e dúvidas**: \\ Ainda não sei bem como fazer o gráfico de decaimento da renda ao longo dos dias. ---- ==== Realização da proposta ==== Proposta realizada: A Página do código: [[.:competition]] Página do help: [[.:helpcompetition]] Arquivo da função: {{:bie5782:01_curso_atual:alunos:trabalho_final:nathaliamonalisa:code_function_final.txt|arquivo_competition}}