Redigindo artigos científicos com o R

blogimageRedigir artigo científico é uma atividade comum na vida de pesquisadores. Nesse processo a análise estatística exerce fundamental importância,pois dela dependerá as inferências feitas pelo pesquisador.  As etapas de análise estatística  dos dados e redação do artigo, embora complementares, são realizadas separadamente e utilizando softwares com formatos incompatíveis de dados.  Esta incompatibilidade faz com que a saída obtida pelo software de análise estatística não possa ser diretamente transferido para o editor de texto sem a perda de formatação. Não obstante, o artigo finalizado fornece insuficiente informações sobre o ambiente computacional utilizado para obter os resultados e assim, impede que aquela pesquisa possa ser completamente reproduzida por outros grupos de pesquisadores.

O R possui algumas ferramentas que permitem a criação de relatórios associando linguagens de texto  com a linguagem R. Uma dessas ferramentas é o pacote knitr o qual permite embutir R scripts no interior de documentos html, latex ou markdown, produzindo assim elegantes relatórios.

As possibilidades apresentadas pelo knitr me dispertaram para a possibilidade de se escrever artigos científicos diretamente do R, mantendo assim em um único arquivo o texto e o R script que utilizei para chegar aos resultados e inferências. Esta prática permite  que o artigo possa ser compartilhado de forma fácil e completa  com colegas e trabalhos e outros pesquisadores permitindo uma avaliação mais crítica do trabalho.

No post de hoje mostrarei como podemos utilizar um artigo científico diretamente do ambiente R. Irei construir a estrutura básica do artigo (título,autores,qualificações, resumo,palavras-chave,abstract,keywords,introdução,material e métodos, resultado e discussão, conclusão. Para formatação vamos utilizar a combinação de comandos Knitr+html.  Informações a respeito da instalação desses pacotes pode ser obtida aqui.  O editor Rstudio oferece algumas facilidades para a geração de relatórios  utilizando knitr, informações podem ser obtidas aqui. Informações rápidas a respeito de html podem ser encontradas nos seguintes sites : site1, site2.

Os seguintes arquivos serão necessários: (Salve todos os arquivos em uma única pasta/diretorio)

  • Arquivo *.rmd contendo o código markdown+html+R
  • Arquivo *.csl contendo o estilo de citação. No zotero (plugin firefox) os estilos de citação para diversas revistas são obtidos em: zotero preferências ->citações->estilos-> obter adicionais estilos. O arquivo *.csl pode ser obtido dos arquivos firefox: menu->ajuda->dados para suporte->abrir pasta->zotero->estilos
  • Arquivo *.bib contendo as referências em formato bibitex. Se você utiliza um gerenciador de referências bibliográficas  (zotero,bibTex, Endnote, Mendeley) as referências utilizadas podem ser exportadas em formato bibtex. No zotero: selecione a referência ou a pasta contendo todas as referências com o botão direito do mouse->clique em exportar coleção/itens-> selecione o formato bibtex->salve-o no diretorio de trabalho.

Para esse post utilizo o estilo de citação do periódico Journal of Animal Science e utilizo duas citações que retirei do meu banco de dados zotero. Esses arquivos podem ser baixados aqui: jas.csl,  referencia2.bib.

Copie o código abaixo, cole em seu editor e salve com a extensão *.rmd . Altere o diretório da linha 124 (“read.bibtex()”) para incluir o diretorio onde você salvou o arquivo referencia2.bib .

</p>

</pre>
<pre><center><font size="6">Redigindo artigo cient&iacute;fico com o R</font></center>
<BODY> <center><p class="big"><font size="3">Joaquin Jos&eacute; da Silva Xavier&sup1;, Chica da Silva&sup2;,Machado de Assis&sup3;</p></font></center>
<p align="left">&sup1;qualifica&ccedil;&atilde;o do primeiro autor</p>
<p align="left">&sup2;qualifica&ccedil;&atilde;o do segundo autor</p>
<p align="left">&sup3;qualifica&ccedil;&atilde;o do terceiro autor</p>
<!----------------------------------Resumo-------------------------------->
<p align="left"><font size="3"><strong>Resumo</strong></font></p>
<p><justify>
O R e uma poderosa linguagem de programaçao. Os diversos recursos disponiveis em seus pacotes basicos e nos pacotes desenvolvidos pela comunidade de usuarios e entusiastas permite ao R realizar atividades diversas. Uma dessa atividade e a geraçao de relatorios com codigo R embutido. Essa possibilidade oriunda do conceito de reprodutividade da pesquisa, permite que a analise estatistica seja comentada de forma organizada, permitindo assim a correta troca de informaçao entre pesquisadores. Esse compartilhamento de informaçao permite que a analise possa ser replicada por diferentes grupos de pesquisadores.
</justify></p>
<!---------------------------------Palavras-chave---------------------------------------------------->
<p align="left"><font size="3"><strong>Palavras-Chave</strong></font></p>
<p><left>palavra1, palavra2, palavra 3</p>
<!------------------------------Abstract------------------------------------->
<p align="left"><font size="3"><strong>Abstract</strong></font></p>
<p><justify>
escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui
</justify></p>
<!---------------------------------Keywords----------------------------------------------------------->
<p align="left"><font size="3"><strong>Keywords</strong></font></p>
<p><left>word1, word2, word3</p>
<!------------------------------Introduçao------------------------------------->
<p align="left"><font size="3"><strong>Introdu&ccedil;&atilde;o</strong></font></p>
<p><justify>
O R oferece podereosos recursos para a criaçao de relatorios contendo o codigo R embutido. Esses recursos permite a associaçao de texto e codigo R de maneira organizada e de facil reproduçao por outros pesquisadores. Um desses recursos e o pacote Knitr o qual permite a associaçao de linguagens markdown e latex com a linguagem R, permitindo a criaçao de documentos html e latex. O pacote knitr tambem fornece funçoes para a conversao desses documentos para outros formatos fomo odt e docx, por meio do software Pandoc.</p></justify>
<p><justify>
A associaçao desses recursos permite que documentos cientificos possam ser escritos diretamente do ambiente R.Essa pratica traz a vantagem
de manter junto a descriçao do experimento,resultados e discussao junto com os dados e procedimentos estatisticos que geraram os dados, facilitando a troca de informaçoes entre pesquisadores de forma completa. O objetivo desse trabalho e desenvolver a estrutura de um trabalho cientifico a partir dos recursos existentes no R.
</justify></p>

<!-----------------------------MATERIAL E METODOS-------------------------->
<p align="left"><font size="3"><strong>Material e M&eacute;todos</strong></font></p>
<p><justify>
O objetivo desse trabalho e descrever  como utilizar o R para a elaboraçao de trabalhos academicos. Sera utilizado a combinaçao dos recursos da liguangem html+markdown+knitr.

</justify></p>
<!---------------------------Resultado e discussao------------------------>
<!--Resultados e discussao  exige um pouco mais de codigo pois nesta parte Colocamos n&atilde;o somente texto mas tabelas e graficos. As saidas do R podem ser exportadas diretamente para o nosso texto.Um dos metodos mais simples a utilizaçao das funçoes existentes no pacote {Pander}-->
<p align="left"><font size="3"><strong>Resultado e discuss&atilde;o</strong></font></p>
<p><justify>
</justify></p>
<!--Rscript para instalar o pacote knitr e pacotes necessarios, bem como a importaçao do arquivo referencias.bib gerado a partir de referencias existentes no gerenciador de referencias zotero. -->

```{r citaçoes_pacotes, echo=FALSE,results="hide",message=FALSE}

#install.packa(c("devtools","rmarkdown"))
#install_github( "cboettig/knitcitations")
library(rmarkdown)
library(devtools)
library(knitcitations)
library(bibtex)
cleanbib()
options(citation_format = "pandoc",check.entries=FALSE)
```
Cita&ccedil;&otilde;es em linha sao realizadas utilizando o pacote knitcitation utilizando DOI do artigo o exemplo de  `r citep("10.1590/S1516-35982010001300036")`.Ha outras opçoes de citaç&otilde;es como no exemplo de `r citep("10.2527/jas.2010-3014")`, recomendo a leitura do manual do pacote.

```{r Tabelas,echo=FALSE,results="hide",message=FALSE}

#install.packages("repmis")
#install.packages("knitr")
library(pander)
library(repmis) #funçao para importar dados do dropbox
library(knitr)
dados <- source_DropboxData(file = "DQL.csv",key = "xtp04eaa1316kt2", sep = ";", header = TRUE)
dados <- transform(dados,VACA=factor(VACA),PERIODO=factor(PERIODO),TRAT=factor(TRAT))
modelo <- aov(LEITE~VACA+PERIODO+TRAT,data=dados)
#install.packages("multcomp")
library(multcomp)
comp <- glht(modelo,linfct=mcp(TRAT="Tukey"))
nometrat <- colnames(summary(comp)$test$pvalues)
medias<- aggregate(LEITE~TRAT,data=dados,FUN=mean)
comparacao <-unname( cld(summary(comp))$mcletters$Letters)
tabela <- cbind(medias,comparacao)
colnames(tabela) <- c("TRATAMENTO","LEITE(Kg)","Tukey (<0,05)")
```
<table>
<style>
table {
width:30%;
<tr>
<td>border-bottom:1px solid #e5eff8;</td>
<td>border-bottom:1px solid #e5eff8;</td>
width:90%;
border-top:1px solid #e5eff8;
border-bottom:1px solid #e5eff8;
margin:1em auto;
border-collapse:collapse;
</tr>
}
<td>
color:#678197;
border-bottom:1px solid #e5eff8;
padding:.3em 1em;
text-align:center;
</td>
<td></td>
</style>
<p class="big"> 
```{r echo=FALSE,results="asis"}
kable(tabela,format="markdown",digits=3,align="c")
```
</p></table>
<p class="big">
```{r graficos,  echo=FALSE,results="asis",fig.align="center"}
par(mfrow=c(2,2))
plot(modelo)
```
</p>

<!--------------------------CONCLUSAO------------------------------------->
<p align="left"><font size="3"><strong>Conclus&atilde;o</strong></font></p>
<p><justify>
escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui
escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui
escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui escreva aqui
</justify></p>
<!-----------------------------Referencias bibliograficas-------------------------->
<p align="left"><font size="3"><strong>Refer&ecirc;ncias bibliogr&aacute;ficas</strong></font></p>
<p class="big"><justify>
```{r,echo=FALSE,results="hide"}
read.bibtex("/home/fernando/Documentos/blog/referencia2.bib")
```
```{r,echo=FALSE,results="asis"}
bibliography("html",style="jas.csl")
```
</p>
</justify></p>
</BODY>


<p style="text-align: justify;">

Crie um arquivo *.R e inclua o seguinte comando para converter o arquivo *.rmd em documento word, o qual será salvo no diretório de trabalho.  Veja o resultado final

#install.package("rmarkdown")
library(rmarkdown)
#converte o arquivo *.rmd para html o qual pode ser visto pelo navegador
render("artigo.rmd",output_format="html_document") #excelente qualidade
#converte o arquivo *.rmd para documento word o qual pode ser visto pelo navegador
render("artigo.rmd",output_format="word_document") # perda de qualidade durante a conversão

A conversão para documento word, embora mantenha a estrutura e o texto, não mantêm a formatação, exigindo que o usuário faça manualmente a formatação. A utilização da linguagem Latex ao invés de html permite um maior fidelidade da formatação durante a conversão. É um bom tema para um proximo poste. Até lá

Anúncios
Esse post foi publicado em Regressões. Bookmark o link permanente.

5 respostas para Redigindo artigos científicos com o R

  1. flavia disse:

    Olá,
    deu erro no arquivo *.csv.
    Nao achei para baixa-lo
    pode disponibilizar?

    • nandodesouza disse:

      Cara Flávia,
      Segue o comando para importação do banco de dados. substitua a linha “dados <- source_DropboxData(file = "DQL.csv",key = "xtp04eaa1316kt2", sep = ";", header = TRUE)" no Rscript pois a função repmis::sourc_DropboxData não é mais suportada pelo pacote repmis.

      dados<-read.csv("https://www.dropbox.com/s/xtp04eaa1316kt2/DQL.csv?raw=1",head=TRUE)

      Agradeço a atenção. A disposição para eventuais dúvidas
      abcs

    • flavia disse:

      Resolvido!!!! obg!!!
      O erro agora é” in ReadBib”

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s