Ich fange gerade an, etwas über KnitR und die Verwendung von Markdown beim Generieren von R-Dokumenten und Berichten zu lernen. Dies scheint perfekt für einen Großteil der täglichen Berichterstattung zu sein, die ich mit meiner Arbeit zu tun habe. Eine Sache, die ich jedoch nicht sehe, ist eine einfache Möglichkeit, Datenrahmen und Tabellen mithilfe der Markdown-Formatierung zu drucken (ähnlich xtable
, jedoch mit Markdown anstelle von LaTeX oder HTML). Ich weiß, dass ich nur die HTML-Ausgabe von xtable einbetten kann, aber ich habe mich gefragt, ob es Markdown-basierte Lösungen gibt.
r
markdown
knitr
r-markdown
TARehman
quelle
quelle
print(xtable(data), type = "html")
.knitr
habe ich eine Pull-Anfrage gesendetpander
, um den Tabellenstil hinzuzufügen. In zukünftigen Versionen vonpander
sollten Sie in der Lage seinpandoc.table(iris, style="rmarkdown")
pander
sollte auf CRAN sein. pandoc ist ein in Haskell geschriebenes Programm, das in und aus einer Vielzahl verschiedener Formate konvertiert. Es ist in keiner Weise spezifisch für R.pander
, das war nicht auf CRAN , als ich es das letzte Mal gehört hatte - nichtpandoc
. Mein Fehler. :)Antworten:
Das
knitr
Paket (seit Version 1.3) enthält jetzt diekable
Funktion für Erstellungstabellen:AKTUALISIERT : Wenn in einem Dokument ein roher Abschlag angezeigt wird, versuchen Sie, die
results = "asis"
Option " Block einrichten" einzurichten .quelle
format
Argument weglassen, da knitr das Ausgabeformat kennt und es automatischresults = asis
.results = 'asis'
Zwei Pakete, die dies tun, sind Pander
Oder ascii
pander
ist ein etwas anderer Ansatz für die Berichtserstellung (kann jedoch für diese Funktion nützlich sein).ascii
ermöglicht es Ihnenprint
mittype = 'pandoc
(oder verschiedenen anderen Markdown-Geschmacksrichtungen)Beachten Sie, dass in beiden Fällen
pandoc
die Konvertierung von Markdown in den gewünschten Dokumenttyp verwendet werden soll. Bei Verwendung vonstyle='rmarkdown'
werden jedoch Tabellen erstellt, die mit diesemmarkdown
Paket kompatibel sind , und die integrierte Konvertierung inrstudio
.quelle
pander
: Es kann diermarkdown
gestalteten Tische auch neben anderen produzieren, zB:pander(head(iris[,1:3]), style = 'rmarkdown')
Ich wollte dies nur mit dem aktualisieren, was ich beschlossen habe. Ich verwende das
hwriter
Paket gerade, um Tabellen auszudrucken, und verwende die Funktionenrow.*
undcol.*
, um CSS-Klassen auf verschiedene Elemente anzuwenden. Dann schrieb ich benutzerdefiniertes CSS, um meine Anzeige so zu gestalten, wie ich es wollte. Hier ist ein Beispiel für den Fall, dass sich jemand anderes mit etwas Ähnlichem befasst.Erstellen Sie zunächst eine Datei, die
knitting
das ausführt, und ändern Sie den Markdown in HTML:Erstellen Sie als Nächstes die eigentliche Markdown-Datei:
Zum Schluss erstellen Sie einfach eine benutzerdefinierte CSS-Datei.
Das Ausführen
./file_knit.r
gibt mir file.html, die so aussieht:Hoffentlich kann dies für andere hilfreich sein, die etwas mehr Formatierung in der Markdown-Ausgabe wünschen!
quelle
Das
pander
Paket enthält Funktionen :quelle
pander
:) Bitte beachten Sie, dass Sie auch die generische S3-Methode verwenden können, um ein paar Zeichen für diepander(head(iris)[, 1:3])
Es ist nicht sehr schwer, eine eigene Funktion zu erstellen. Hier ist ein sehr einfacher Proof of Concept zum Generieren einer Rmarkdown-Tabelle von a
data.frame
:In einem RMD-Dokument würden Sie dann die Funktion verwenden mit
results = 'asis'
:Der obige Code würde Ihnen die folgende Abbildung geben (im Beispiel ist dies die PDF-Ausgabe, aber da sich die Tabelle in markdwon befindet, können Sie auch in HTML oder Word stricken).
Von hier aus - und beim Lesen des Codes anderer Personen - können Sie herausfinden, wie Sie den Text bearbeiten, um die gewünschte Tabelle zu generieren und individuellere Funktionen zu erstellen.
quelle
Verwenden Sie eine Kombination aus knitr :: kable und xtable in Ihrem Markdown-Dokument.
für einen einfachen data.frame -
format="pandoc"
ermöglicht mehr Optionen wie Beschriftung.Nun die Kombination zur Modellzusammenfassung .
Für noch mehr Optionen schauen Sie sich das
stargazer
Paket anstelle von anxtable
.Beispiel für den persönlichen Gebrauch
quelle
Zum Schreiben / Erstellen von Markdown-Tabellen in R können Sie auch MarkdownReports '
MarkDown_Table_writer_DF_RowColNames()
oder verwendenMarkDown_Table_writer_NamedVector()
Funktionen verwenden. Sie übergeben einfach einen Datenrahmen / eine Matrix mit Dimensionsnamen oder einen Vektor mit Namen und analysieren und schreiben die Tabelle im Markdown-Format.quelle
Meine Funktion für Gitlab:
quelle