gpt4 book ai didi

r - 通过 R markdown 和 knit 加载并打印新页面中的每个表格

转载 作者:行者123 更新时间:2023-12-02 21:09:33 24 4
gpt4 key购买 nike

我在同一目录中有大约 60 个 .Rdata 文件。所有这些 .Rdata 中的对象名称都是相同的。我想编写一些代码来加载和打印所有 60 个 .Rdata 文件以及新页面中的每个文件。例如,如果文件名是 file_1.rdatafile_2.rdatafile_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 block 中编写 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' 添加到您的 block 中调用:

```{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")
}
```

关于r - 通过 R markdown 和 knit 加载并打印新页面中的每个表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34279575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com