{{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:foto_flora.png?|}} ====== Flora Balieiro ====== Mestranda em Psicobiologia no Laboratório de Etologia e Bioacústica, FFCLRP/USP.\\ Tenho interesse por Ecologia Comportamental e atualmente investigo a função do chamado de longo alcance do Lobo Guará. [[Meus Exercícios]] ===== Trabalho Final ===== **Proposta A - Curvas Lei de Potência** Desenvolver uma função que plote os dados de uma rede de interações em um gráfico de Lei de Potência. Nas redes aninhadas uma minoria dos vértices detém a maioria das interações enquanto a maioria dos vértices interage pouco. Os fenômenos aninhados não seguem distribuições gausseanas, mas podem ser descritos por curvas do tipo Lei de Potência (“Power-Law”). A ideia é criar uma função que plote os dados de acordo com o modelo dessas curvas e sobrepor nesse gráfico a curva teórica associada. A função recebe como entrada uma tabela com duas colunas: a primeira inclui os vértices e a segunda contém o número de interações para cada vértice. **Proposta B - A.B.S.T - Ajusta Bibliografia Sem Trabalho** Criar uma função capaz de adequar informações de referências bibliográficas de acordo com normas de diferentes revistas científicas. Para isso a função deverá receber uma tabela contendo as referências a serem formatadas. Essa tabela deve incluir colunas separadas para: autores, título do trabalho, revista, ano de publicação, etc. Como resultado a função gera um arquivo de texto contendo as referências da tabela organizadas de acordo com o padrão da revista selecionada. **Proposta C - Evitando Tendinite** Tarefas repetitivas - como a de digitar comandos no R - podem se tornar um problema se não forem espaçadas por intervalos de descanso (veja aqui [[http://pt.wikipedia.org/wiki/Les%C3%A3o_por_esfor%C3%A7o_repetitivo]]. Por isso pensei em criar uma função que abra uma página a intervalos regulares contendo um vídeo do Youtube com instruções de alongamento. A função deve receber o intervalo de tempo determinado pelo usuário e o endereço para o vídeo escolhido. ===== Referências ===== {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:barabási_2000_-_power-law_distribution_of_the_www.pdf|BARABÁSI 2000 - Power-Law Distribution of the www (SCIENCE)}} {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:bascompte_jordano_2007_-_plant-animal_mutualistic_networks_-_the_architecture_os_biodiversity.pdf|BASCOMPTE & JORDANO 2007 - Plant-Animal mutualistic networks - REVIEW (Annu. Rev. Ecol. Evol. Syst.)}} {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:clauset_et_al_2009_-_power-law_distributions_in_empirical_data.pdf|CLAUSET et al 2009 - Power-Law distributions in empirical data (physics.data-an)}} ==== Comentários ==== Oi Flora Não entendi o **plano A**. "A ideia é criar uma função que plote os dados __de acordo com o modelo dessas curvas__ e sobrepor nesse gráfico __a curva teórica associada__." 1) O que você quer dizer com "plotar os dados de acordo com o modelo dessas curvas"? Que modelo de que curvas? Não seria simplesmente plotar x=número de interações por y=número de vértices com aquele número de interações? 2) Qual a curva teórica que vc vai sobrepor no gráfico? É a curva da Lei de Potência? Apesar de estar confusa, se essa for a proposta que mais te motiva, invista nela! É legal fazer uma função que vai ser útil de verdade depois! **Plano B** Essa proposta é a que está melhor estruturada. Talvez seja interessante vc dar uma olhada em alguns formatos que são bastante usados para informações bibliográficas, como .ris ou [[http://en.wikipedia.org/wiki/.bib#Bibliographic_information_file|.bib]]. Pode ser mais interessante vc usar um desses formatos como entrada, em vez da tabela que vc propôs (se não vc teria que escrever criar cada item da tabela de entrada manualmente, e daria um trabalhão!). É útil usar esses formatos prontos porque dá pra baixar referências direto nesse formato (vc não precisa criar cada entrada). **Plano C ** Divertido!! Mas muito simples... As propostas A e B são mais interessantes. ==== Ale ==== Sugiro o mesmo que a Debora, fique com o plano A. Além do plot tente retornar alguma medida de ajuste dos dados ao modelo teórico (lei de potência) --- //[[adalardo@usp.br|Alexandre Adalardo de Oliveira]] 2013/03/24 22:08// ==== Resposta ==== Conversando com alguns monitores e pesquisando melhor percebi que a proposta A talvez não seja a melhor ideia, pois já existem funções que fazem isso e de uma forma muito melhor (com ajuste de modelo inclusive). Vou tentar trabalhar com o Plano B, acho que com isso irei aprender algo sobre manipular strings, o que pode vir a ser útil em algum momento (quem sabe!). Seguindo as sugestões vou tentar incrementar as coisas usando arquivos .bib como input da função. === FUNÇÃO ABST === ABST <- function(FILE_NAME) { ##Constantes importantes DEFAULT_DIRECTORY <- getwd() PATTERN_AUTHOR <- "author" PATTERN_YEAR <- "year" PATTERN_TITLE <- "title" PATTERN_JOURNAL <- "journal" PATTERN_NUMBER <- "number" PATTERN_VOLUME <- "volume" PATTERN_PAGES <- "pages" setwd(DEFAULT_DIRECTORY) #Função verifica se os pacotes necessários #já foram instalados checkDependency <- function() { out <- "" #Carrega o pacote stringr installedPack<-installed.packages() packages<-installedPack[,1] findStringr <- is.element("stringr", packages) #Se o pacote stringr não foi instalado if(findStringr == FALSE) { #Instala o pacote stringr install.packages("stringr") library("stringr") out <- "Pacote stringr instalado e importado com sucesso!" } else { library("stringr") out <- "Pacote stringr importado com sucesso!" } out } #Checa todas as dependências checkDependency() #Le um arquivo de referencia "BibTex" readFile <- function(fileTxt) { #carrega o arquivo em formato caracter e separa em linhas ref<-scan(file=fileTxt, what=character(), sep="\n") return(ref) } #Remove caracteres '{' e '}' do arquivo BibTex removeKeys <- function(bibFile) { bibFile <- str_replace_all(bibFile, "\\{", "") bibFile <- str_replace_all(bibFile, "\\}", "") return(bibFile) } #Realiza o parser para obter uma string específica doParser <- function(bibFile, pattern) { #retorna a linha em que foiencontrada #a ocorrência da string pattern index <- grep(pattern, file) #Converte todo o arquivo bib em um data frame #para manipular linhas e colunas database <- data.frame(file) #Busca somente a linha da ocorrência passando #o index find <- database[index,1] find <- removeKeys(find) find <- str_replace_all(find, pattern, "") find <- str_replace_all(find, "=", "") if(pattern == PATTERN_YEAR) { find <- str_replace_all(find, ",", ".") } if(pattern == PATTERN_TITLE) { find <- str_replace_all(find, ",", ".") } if(pattern == PATTERN_VOLUME) { find <- str_replace_all(find, ",", ":") } if(pattern == PATTERN_PAGES) { find <- str_replace_all(find, "\\,", "") } find <- as.character(find) return(find) } #Retorna o resultado getResult <- function(author, year, title, journal, number, volume, pages) { result <- paste(author, year, title, journal, number, volume, pages) return(result) } #Le o arquivo file <- readFile(FILE_NAME) #Obtem a string author author <- doParser(file, PATTERN_AUTHOR) #Obtem a string year year <- doParser(file, PATTERN_YEAR) #Obtem a string title title <- doParser(file, PATTERN_TITLE) #Obtem a string journal journal <- doParser(file, PATTERN_JOURNAL) #Obtem a string number number <- doParser(file, PATTERN_NUMBER) #Obtem a string volume volume <- doParser(file, PATTERN_VOLUME) #Obtem a string pages pages <- doParser(file, PATTERN_PAGES) #Obtem o resultado no padrão: author,ano.titulo.journal,number,volume:pages result <- getResult(author, year, title, journal, number, volume, pages) result return(result) } === HELP === ABST package:nenhum R Documentation "Ajusta Bibliografia Sem Trabalho" Description: A função ABST serve para adequar informações de referências bibliográficas a partir de citações que seguem um dos padrões BibText. Usage: ABST(file) Arguments: file corresponde ao arquivo que contém as informações a serem organizadas. Details: As informações do arquivo de entrada devem conter os seguintes padrões de string: title = {título do artigo}, author = {nome do autor}, journal = {revista}, year = {ano de publicação}, number = {número da revista}, volume = {volume da revista}, pages = {número de páginas}, Value: Retorna uma string contendo as referências bibliográficas no seguinte padrão: autor, ano, título, número, volume: páginas. Author(s): Flora Vieira Balieiro - flora.balieiro@usp.br References: http://www.bibtex.org/ Examples: #Antes de rodar o exemplo baixe os arquivos EX_*.txt contidos nessa página e salve-os no diretório de trabalho do R. LeiDeMurphy <- ABST ("EX_Tumbling toast, Murphy's Law and the fundamental constants.txt") LeiDeMurphy DepenaFrango <- ABST ("EX_Chicken Plucking as Measure of Tornado Wind Speed.txt") DepenaFrango PressaoPinguim <- ABST ("EX_Pressures produced when penguins pooh-calculations on avian defaecation.txt") PressaoPinguim AmebaEsperta <- ABST ("EX_Intelligence Maze-solving by an amoeboid organism.txt") AmebaEsperta {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:ex_tumbling_toast_murphy_s_law_and_the_fundamental_constants.txt|EX_Tumbling toast, Murphy's Law and the fundamental constants}} {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:ex_chicken_plucking_as_measure_of_tornado_wind_speed.txt|EX_Chicken Plucking as Measure of Tornado Wind Speed}} {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:ex_pressures_produced_when_penguins_pooh-calculations_on_avian_defaecation.txt|EX_Pressures produced when penguins pooh-calculations on avian defaecation}} {{:bie5782:01_curso_atual:alunos:trabalho_final:flora.balieiro:ex_intelligence_maze-solving_by_an_amoeboid_organism.txt|EX_Intelligence Maze-solving by an amoeboid organism}}