Skip to content

Latest commit

 

History

History
93 lines (73 loc) · 5.04 KB

README-PT.md

File metadata and controls

93 lines (73 loc) · 5.04 KB

knitr

Status de Compilação Status da Cobertura de Código Downloads do espelho RStudio CRAN

O pacote R knitr é um motor de programação literata (o literate programming de Donald Knuth) de propósito geral, com API's leves desenhadas para dar aos usuários controle total das saídas, sem trabalho pesado de codificação. Ele combina muitas funcionalidades em um único pacote com pequenos ajustes motivados pelo meu uso diário do Sweave. Vejam a homepage do pacote para detalhes e exemplos. Vejam os FAQ's para uma lista de perguntas (incluindo sobre onde levantar questões).

Instalação

Você pode instalar a versão estável em CRAN:

install.packages('knitr', dependencies = TRUE)

Você pode instalar a versão em desenvolvimento em XRAN, que fornece compilações (builds) diários do knitr:

# Atualizar todos os pacotes e depois instalar
update.packages(ask = FALSE, repos = 'https://cran.r-project.org')
install.packages('knitr', repos = c('https://xran.yihui.name', 'https://cran.r-project.org'))

Note que para compilar o pacote fonte com o R CMD build em um ambiente sem a versão anterior do knitr, é necessário pré-instalar o knitr do CRAN ou rodar R CMD INSTALL no repositório, de outras formas R CMD build falhar (o que provavelmente é um bug da base do R).

Motivação

Enquanto o Sweave e seus pacotes anexos como cacheSweave e pgfSweave são um motor de programação literata em R razoavelmente bom, eu freqüentemente sinto minhas mãos estão atadas, por exemplo:

  • Eu encarei o código fonte do Sweave e desejei por centenas de vezes se eu apenas pudesse inserir [width=.8\textwidth] entre \includegraphics e {meu-plot.pdf} (a maneira oficial no Sweave é \setkeys{Gin} mas isso configura uma largura (width) global, o que não realista já que nós com freqüência temos de ajustar larguras indidualmente; Sim, você pode usar \setkeys{Gin} por muitas vezes, mas porquê não apenas prover uma opção por pedaço (chunk) de código?
  • Eu desejei muitas vezes se apenas eu pudesse usar outros dispositivos gráficos outros que não PDF e postscript; Agora o sonho se tornou real no R oficial, mas o que eu tinha esperanças é que fosse uma opção tão simples como dev = 'png' oi dev = 'CairoJPEG';
  • Eu queria que múltiplos gráficos em um único pedaço de código pudesse ser registrado ao invés de apenas o último;
  • Eu desejei que houvesse uma forma de arredondar os números em \Sexpr{} sem escrever expressões como \Sexpr{round(x, 3)} para cada simples \Sexpr{};
  • Eu desejava que eu não tivesse de escrever print() em gráficos do ggplot2 e um simples qplot(x, y) apenas me desse um gráfico plotado no Sweave;
  • Eu deseje que usuários nunca precisassem de instruções sobre Sweave.sty ou entrasse em problemas devido ao fato que LaTeX não consegue encontrar Sweave.sty;
  • Eu desejei quecacheSweave pudesse imprimir os resultados de um pedaço de código mesmo que ele estivesse em cache;
  • Eu desejei que brew pudesse suportar gráficos;
  • Eu desejei que R2HTML pudesse suportar destaque de sintaxe (syntax highlighting) para código em R;
  • ...

Livro Dynamic Documents with R and knitr

O pacote knitr foi desenhado para dar ao usuário acesso à todas as partes do processo de lidar com um documento de programação literata, então não há necessidade de hackear nenhum componente do núcleo se você quiser mais liberdade. Eu atravessei o código fonte do pgfSweave e do cacheSweave algumas vezes, e freqüentemente me sinto desconfortável com a quantidade de código copiada da distribuição oficial do R, especialmente quando R tem uma nova versão lançada (eu vou começar a me preocupar se os anexos - add-ons - estão atuais com o Sweave oficial).

Uso

library(knitr)
?knit
knit(input)

Se as opções não forem explicitadas, knitr vai tentar adivinhar configurações-padrão razoáveis. Alguns manuais estão disponíveis, como o manual principal, e o manual de gráficos. Para uma referência organizada, ver o livro do knitr.

Licença

Este pacote é software livre e de código aberto, licenciado sobre a GPL.