Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:flora.balieiro:start

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

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 .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) — 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

EX_Tumbling toast, Murphy's Law and the fundamental constants

EX_Chicken Plucking as Measure of Tornado Wind Speed

EX_Pressures produced when penguins pooh-calculations on avian defaecation

EX_Intelligence Maze-solving by an amoeboid organism

05_curso_antigo/r2013/alunos/trabalho_final/flora.balieiro/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)