2017-02-25 1 views
3

Comment créer plusieurs sorties via pander() dans un document tricoté "asis"?Avoir plusieurs pander() s dans une fonction

Lorsque j'ai plusieurs appels de pander dans une fonction, seul le plus récent est affiché dans la sortie HTML. Voici un exemple:

tmp = function() { 
    pander('A') 
    pander('B') 
    pander('C') 
} 
tmp() 

Dans le document tricotée cela donne: C

je pouvais mettre panderOptions('knitr.auto.asis', FALSE) ou je pourrais utiliser cat() pour que la sortie pander() est écrit sur la sortie standard. Mais alors c'est formaté en code, pas en tant que partie du document. Comme j'ai besoin de pander() pour formater quelques tables pour moi, cela n'aide pas.

Répondre

2

La fonction tmp retournera uniquement le dernier objet - c'est pourquoi seul C est imprimé. Si vous voulez écrire chaque objet à l'stdout tout de suite sans l'option confort auto-ase, vous avez à la fois désactiver l'option que vous avez fait et utiliser le trait knitr option morceau, par exemple:

```{r results='asis'} 
library(pander) 
panderOptions('knitr.auto.asis', FALSE) 
tmp = function() { 
    pander('A') 
    pander('B') 
    pander('C') 
} 
tmp() 
``` 

Voir plus d'exemples dans le "Using pander with knitr" vignette.

+0

Ah, super! l'option 'results = 'asis'' était ce qui me manquait! – BurninLeo