{{: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}}