2017-09-04 2 views
0

Ich versuche, einen parametrisierten Bericht über Markdown von einer glänzenden App zu erstellen. Der Bericht soll eine Worddatei sein, die Text, Bilder und Tabellen enthält. Allerdings weiß ich nicht, wie man das Verhalten des Strickknopfes über die Kommandozeile nachahmt. Hier ist ein Beispiel für die Markdown-Datei.Parametrisiertes Wortreport mit Tabellen

Wenn ich den Knit-Knopf in rstudio verwende, bekomme ich einen "schön" formatierten Tisch. Die tutorial für parametrisierte Berichte habe ich vorgeschlagen, schlagen Sie vor, den Bericht mit rmarkdown :: render z.

rmarkdown::render("report.Rmd", params = list(n = 20)) 

Dabei wird die Tabelle jedoch nicht als formatierte Tabelle angezeigt. Die Hilfe für rmarkdown :: render besagt, dass das Stricken bei Bedarf ausgeführt wird. Irgendeine Idee, was ich falsch mache?

+0

entfernen Sie 'results = 'asis'' und schreiben Sie einfach' kable (df) '(ohne Druck). Dies sollte in der gleichen Tabelle resultieren. –

+0

Danke für die Antwort. Das hilft beim (hoffentlich) minimalen Beispiel, das ich zur Verfügung gestellt habe. Ich möchte jedoch eine Liste von Bezeichnern an die Markdown-Datei übergeben und eine Tabelle für jeden Bezeichner generieren. Verwenden Sie daher eine For-Schleife, für die ich den Druckaufruf soweit ich weiß brauche. – Isolde

Antwort

1

Nachdem Sie Ihren Kommentar, sollte diese Arbeit:

--- 
title: "Dynamic report" 
output: word_document 
params: 
    n: 10 
    m: 20 
--- 

```{r, echo = FALSE, results='asis'} 
library(knitr) 
for(i in 1:length(params)){ 
    df <- data.frame(x = 1:params[[i]], y = rnorm(params[[i]])) 
    print(kable(df)) 
} 
``` 

Und dann können Sie verwenden rmarkdown::render("~/Schreibtisch/temp/RMD.Rmd", params = list(n = 10, m = 20))

diese Arbeit für Sie?

+0

Hallo danke nochmal. Das funktioniert tatsächlich, obwohl ich nicht verstehe, warum ich es vorher nicht zur Arbeit bringen konnte. Ich habe einige geringfügige Änderungen vorgenommen, um den Bericht mit einer variablen Anzahl von "Nummern" aufrufen zu können, z. 'rmarkdown :: render (" ~ R/report.Rmd ", params = Liste (n = c (18,11,14,13))) – Isolde

Verwandte Themen