簡體   English   中英

通過R markdown和knitr加載並打印新頁面中的每個表

[英]Load and print every table in new page by R markdown and knitr

我在同一目錄中大約有60個.Rdata文件。 所有這些.Rdata中的對象名稱都相同。 我想編寫一些代碼來加載和打印所有60個.Rdata文件以及新頁面中的每個文件。 例如,如果文件名是file_1.rdatafile_2.rdatafile_3.rdata 所有三個.Rdata文件中的對象名稱均為table 以下編織代碼完全顯示了我想要的內容,

>\```{r,echo=FALSE}  
>load("file_1.rdata")  
>print(table)  
>\```  
>\pagebreak  
>\```{r,echo=FALSE}  
>load("file_2.rdata")  
>print(table)  
>\```  
>\pagebreak  
>\```{r,echo=FALSE}  
>load("file_3.rdata")  
>print(table)  
>```  
>\pagebreak

但是我有60多個文件,手工編寫所有代碼真的很困難。 我可以在R塊中編寫for循環,但是,如何為每個.rdata文件創建一個新頁面?

for循環將是

>\```{r,echo=FALSE}  
>names <- c("file_1.rdata","file_2.rdata","file_3.rdata")  
>for(i in 1:length(names)){  
>  current_object <- names[i]  
>   load(current_object)  
>  print(table)  
>}  
>\```  

您可以嘗試在for循環中添加cat("\\n\\n\\\\pagebreak\\n") ,然后在塊調用中添加results='asis'

```{r,echo=FALSE, results='asis'}

names <- c("file_1.rdata","file_2.rdata","file_3.rdata")
for(i in 1:length(names)){
   current_object <- names[i]
   load(current_object)
   print(table)
   cat("\n\n\\pagebreak\n")
}

```

它適用於mtcars:

---
title: "test"
output: pdf_document
---

```{r, echo=FALSE, results='asis'}
for (i in 1:3) {
  print(mtcars)
  cat("\n\n\\pagebreak\n")
}
```

注意,您可能想研究一下函數kable以更好地格式化表格。 或者使用library(xtable)

```{r, echo=FALSE, results='asis'}
for (i in 1:3) {
  print(xtable::xtable(mtcars), type = "latex")
  cat("\n\n\\pagebreak\n")
}
```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM