Knitr
Knitr est une extension (package en anglais) du logiciel R qui permet l'inclusion de code R dans plusieurs types de documents, en particulier dans les documents LaTeX. Ainsi, les résultats obtenus grâce à R, comme les tableaux et les graphiques, apparaîtront tels quels dans le fichier .tex compilé.
Knitr offre plus de fonctionnalités que la fonction Sweave de R en proposant un environnement de programmation lettrée.
Fonctionnement
L'idée est d'écrire un document LaTeX ordinaire, mais au lieu d'inclure des tableaux ou des graphiques préalablement générés, on écrit directement le code R qui les génère. De cette façon, les documents sont dynamiques et s'adaptent automatiquement si l'on change les échantillons ou l'analyse.
Un des avantages d'utiliser knitr est bien évidemment d'éviter d'avoir à retaper un document LaTeX en cas de changements ou d'erreur. Mais aussi, cela facilite la reproduction des résultats par d'autres utilisateurs. C'est donc un bon outil pour les publications scientifiques.
Évidemment, une syntaxe particulière est requise pour la rédaction du document et il faut exécuter le document source au moins deux fois : une fois avec R suivi d'au moins une fois avec LaTeX. Un manuel d'utilisation explique en détail la syntaxe qu'il faut utiliser, mais voici brièvement quelques indications :
- Le document est construit en fragments qui sont composés de texte ou bien de code.
- Les fragments de texte commencent par un
@
suivi d'un saut de ligne. Par défaut, le prermier fragment est toujours un fragment de texte. - Les fragments de code commencent par
<<paramètres>>=
suivi d'un saut de ligne. Les paramètres déterminent les options d'affichage. - Le fichier source porte généralement l'extension .Rnw.
Une liste d'exemples est disponible en ligne. Pour compiler un exemple, il faut d'abord avoir installé la librairie sur son compte. Dans une session de R, il faut ensuite importer la libraire puis d'appeler la fonction knit
avec le fichier en argument :
require(knitr) knit("fichier.Rnw")
Cette dernière ligne produira un fichier .tex qu'il suffira de compiler à l'aide de LaTeX selon la procédure habituelle.