2017-10-19 9 views
1

J'ai un vecteur R des chemins de fichiers pour les figures pdf que je voudrais mettre dans mon document knitr et tricoter en html. Je vois que je peux obtenir un pdf à inclure avecInclure plusieurs graphiques avec R-markdown

knitr::include_graphics(filepaths[1]) 

Mon vecteur est longue et les chemins de fichiers change de taille entre les compilations de documents. Existe-t-il une méthode pour les inclure tous en une seule fois. J'avais imaginé que cela fonctionnerait.

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

avait également essayé:

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

Répondre

2

knitr::include_graphics() est vectorisé, donc la réponse est simplement:

knitr::include_graphics(filepaths) 

Votre première solution ne fonctionne pas parce que knitr::include_graphics() a besoin d'être the top-level expression. Votre deuxième solution ne fonctionne pas car vous devez utiliser cat() au lieu de print() et l'option de bloc results='asis'.

There are several advantages d'utiliser include_graphics() sur cat() + results='asis'.

1

Essayez d'utiliser cat au lieu de include_graphics. Par exemple:

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

Cette syntaxe générale est Markdown: ![NAME](PATH).
Avec cette solution, vous devrez utiliser results = "asis" dans l'en-tête de bloc.

+0

Merci, ça marche! – Seth

+0

@Seth heureux d'aider :-) – PoGibas