Je viens tout juste de commencer à apprendre à propos de KnitR et de l'utilisation de Markdown pour générer des documents et des rapports en R. Cela semble parfait pour beaucoup des rapports quotidiens que je dois faire dans mon travail. Cependant, une chose que je ne semble pas voir est un moyen simple d'imprimer des data frames et des tables en utilisant le format Markdown (un peu comme xtable
, mais avec Markdown au lieu de LaTeX ou HTML). Je sais que je peux simplement incorporer la sortie HTML de xtable, mais je me demandais s'il existait des solutions basées sur Markdown?
Réponses
Trop de publicités?Utilisez une combinaison de knitr::kable et xtable dans votre document markdown.
library("knitr","xtable")
pour un simple data.frame -
kable(head(mtcars[,1:4]),format="markdown")
kable(head(mtcars[,1:4]),format="pandoc",caption="Title of the table")
format="pandoc"
permet plus d'options comme le caption.
Maintenant la combinaison pour le résumé du modèle.
data(tli)
fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data=tli)
kable(xtable(fm1), caption = "Tableau d'Anova")
pour encore plus d'options, regardez le package stargazer
au lieu de xtable
.
Pour écrire / créer des tables Markdown en R, vous pouvez également utiliser les fonctions MarkDown_Table_writer_DF_RowColNames()
ou MarkDown_Table_writer_NamedVector()
de MarkdownReports. Il vous suffit de transmettre un data frame / matrice avec des noms de dimension, ou un vecteur avec des noms, et il parse & écrit le tableau au format Markdown.
Ma fonction pour Gitlab :
to_markdown <- fonction(df) {
wrap <- fonction(x, sep = " ") paste0("|", sep, paste(x, collapse = paste0(sep, "|", sep)), sep, "|", sep = sep)
paste0(wrap(colnames(df)),
"\n",
wrap(rep("------", ncol(df)), sep = ""),
"\n",
paste(apply(df, 1, wrap), collapse = "\n"))
}
cat(to_markdown(head(iris[, 1:3])))
| Longueur du sépale | Largeur du sépale | Longueur du pétale |
|------|------|------|
| 5.1 | 3.5 | 1.4 |
| 4.9 | 3 | 1.4 |
| 4.7 | 3.2 | 1.3 |
| 4.6 | 3.1 | 1.5 |
| 5 | 3.6 | 1.4 |
| 5.4 | 3.9 | 1.7 |
- Réponses précédentes
- Plus de réponses
3 votes
En considérant xtable et html.. Impression du code html avec
print(xtable(data), type = "html")
.7 votes
@TARehman Ta question m'a rappelé qu'il n'y avait toujours pas de solution qui produisait des tables directement compatibles avec
knitr
, donc j'ai envoyé une requête de fusion àpander
pour ajouter le style de table. Dans les prochaines versions depander
, vous devriez pouvoir fairepandoc.table(iris, style="rmarkdown")
1 votes
@Marius Savez-vous pourquoi pandoc ne fait pas partie de CRAN ? Ou quand il pourrait en devenir partie ? Juste curieux.
2 votes
@TARehman Je ne suis pas tout à fait sûr si vous vouliez dire pander ou pandoc.
pander
devrait être sur CRAN. pandoc est un programme écrit en Haskell qui convertit vers et depuis une grande variété de formats différents, ce n'est pas spécifique à R de quelque manière que ce soit.0 votes
@TARehman si vous êtes sur Windows, vous pourriez installer
pandoc
facilement avec github.com/talgalili/installr. Mais @Marius a raison,pandoc
n'est pas un programme R, donc ne sera jamais sur CRAN bien sûr.1 votes
Désolé, je voulais dire
pander
, qui n'était pas sur CRAN la dernière fois que j'avais entendu - paspandoc
. C'est ma faute. :)0 votes
Voici un fichier html qui montre ce que produisent une demi-douzaine de méthodes différentes : rpubs.com/benmarwick/tables_in_rmarkdown le meilleur paquet pour cela est probablement hwriter