Différences entre les versions de « Knitr »

Ligne 46 : Ligne 46 :
  
 
== Exemple ==
 
== Exemple ==
 +
 +
Voici un petit exemple de document que l'on peut produire à l'aide de knitr.
 +
 +
<pre>
 +
\documentclass[11pt]{article}
 +
 +
\usepackage[utf8]{inputenc}
 +
\usepackage[T1]{fontenc}
 +
\usepackage{lmodern}
 +
\usepackage[french]{babel}
 +
 +
\begin{document}
 +
 +
En théorie des probabilités, le théorème de Donsker établit la convergence en loi
 +
d'une marche aléatoire vers un mouvement brownien standard. Le code ci-bas génère
 +
une marche aléatoire avec des pas gaussiens standards.
 +
 +
\begin{center}
 +
<<Mouvement-Brownien, echo=TRUE, fig.width=4, fig.height=4, out.width='.8\\linewidth'>>=
 +
set.seed(123)
 +
x = cumsum(rnorm(100))
 +
plot(x, type = 'l', xlab = 'Temps', ylab = 'Distance')
 +
@
 +
\end{center}
 +
 +
\end{document}
 +
</pre>
  
 
== Voir aussi ==
 
== Voir aussi ==

Version du 15 octobre 2013 à 14:28

Knitr est une extension du logiciel R.

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 source compilé (.pdf par exemple).


Knitr offre plus de fonctionnalités que la fonction Sweave de R et propose un environnement de programmation lettrée.



Fonctionnement

L'idée derrière knitr est d'écrire un document LaTeX ordinaire mais, plutôt que d'inclure des tableaux ou des graphiques générés préalablement, 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.

Une syntaxe particulière est requise pour la rédaction du document et il faut compiler le document source au moins deux fois : une fois avec knitr (dans R) suivi d'au moins une fois avec LaTeX. Un manuel d'utilisation explique en détails la syntaxe à employer, 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 premier 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 importer la libraire puis appeler la fonction knit avec le fichier en argument dans un session R :

require(knitr)
knit("fichier.Rnw")

La ligne précédente produira un fichier .tex qu'il suffira ensuite de compiler à l'aide de LaTeX selon la procédure habituelle.

Note : Le fichier .tex sera produit dans le répertoire de travail de R. Ce répertoire est disponible à l'aide de la commande getwd(). Pour que le fichier soit produit dans un autre répertoire, il suffit d'ajouter le paramètre output="répertoire".

Exemple

Voici un petit exemple de document que l'on peut produire à l'aide de knitr.

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}

\begin{document}

En théorie des probabilités, le théorème de Donsker établit la convergence en loi
d'une marche aléatoire vers un mouvement brownien standard. Le code ci-bas génère
une marche aléatoire avec des pas gaussiens standards.

\begin{center}
<<Mouvement-Brownien, echo=TRUE, fig.width=4, fig.height=4, out.width='.8\\linewidth'>>=
set.seed(123)
x = cumsum(rnorm(100))
plot(x, type = 'l', xlab = 'Temps', ylab = 'Distance')
@
\end{center}

\end{document}

Voir aussi

Articles connexes

Références


La dernière modification de cette page a été faite le 15 octobre 2013 à 14:28.