通过 R markdown 和 knitr 在新页面中加载并打印每个 table
Load and print every table in new page by R markdown and knitr
我在同一目录中有大约 60 个 .Rdata 文件。所有这些 .Rdata 中的对象名称都是相同的。我想编写一些代码来加载和打印所有 60 个 .Rdata 文件以及新页面中的每个文件。例如,如果文件名为 file_1.rdata
、file_2.rdata
和 file_3.rdata
。所有三个 .Rdata 文件中的对象名称都是 table
。以下 knitr 代码正是我想要的,
>\```{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")
}
```
我在同一目录中有大约 60 个 .Rdata 文件。所有这些 .Rdata 中的对象名称都是相同的。我想编写一些代码来加载和打印所有 60 个 .Rdata 文件以及新页面中的每个文件。例如,如果文件名为 file_1.rdata
、file_2.rdata
和 file_3.rdata
。所有三个 .Rdata 文件中的对象名称都是 table
。以下 knitr 代码正是我想要的,
>\```{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")
}
```