2017-10-19 5 views
1

Ich habe einen R-Vektor von Dateipfaden für pdf-Abbildungen, die ich in mein knitr Dokument einfügen und in HTML stricken möchte. Ich sehe, dass ich ein einziges pdf aufgenommen werden bekommen kann mitInclude mehrere Grafiken mit R-Markdown

knitr::include_graphics(filepaths[1]) 

Mein Dateipfad Vektor ist lang und Änderungen der Größe zwischen Dokumentensammlungen. Gibt es eine Methode, sie alle auf einmal zu integrieren? Ich hatte mir vorgestellt, dass das funktionieren würde.

for(i in filepaths){knitr::include_graphics(i)} 

hatte auch versucht:

for(i in filepaths){ print("![](", filepaths[i], ")") } 

Antwort

2

knitr::include_graphics() wird vektorisiert, so die Antwort ist einfach:

knitr::include_graphics(filepaths) 

Ihre erste Lösung nicht, weil knitr::include_graphics() Bedürfnisse the top-level expression arbeiten. Ihre zweite Lösung funktioniert nicht, da Sie cat() anstelle von print() und die Chunk-Option results='asis' verwenden sollten.

There are several advantages der Verwendung include_graphics() über cat() + results='asis'.

1

Versuchen cat statt include_graphics verwenden. Zum Beispiel:

for(i in 1:length(filepaths) { 
    cat("![](", filepaths[i], ")") 
} 

Dies ist allgemeine Markdown-Syntax: ![NAME](PATH).
Mit dieser Lösung müssen Sie in Chunk-Header verwenden.

+0

Danke, das funktioniert! – Seth

+0

@Seth glücklich zu helfen :-) – PoGibas