2017-02-25 80 views
3

如何在針織文檔「asis」中通過pander()創建多個輸出?在函數中具有多個pander()s

當我在函數中多次調用pander時,HTML輸出中只顯示最近一次調用。這裏有一個例子:

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

在針織文檔這給:C

我可以設置panderOptions('knitr.auto.asis', FALSE)或者我可以用cat()使得pander()輸出寫入到標準輸出。但是,它被格式化爲代碼,而不是文檔的一部分。因爲我需要pander()來爲我設置一些表格,這沒有幫助。

回答

2

tmp函數將只返回最後一個對象 - 這就是爲什麼只打印C。如果你想要寫的每個對象的stdout馬上不自動ASIS方便的選項,那麼你必須都禁止像你這樣使用該選項的相關knitr塊選項,如:

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

請參閱相關"Using pander with knitr" vignette中的更多示例。

+0

啊,太好了! 'results ='asis''選項是我錯過的! – BurninLeo

相關問題