【发布时间】:2015-12-15 01:28:48
【问题描述】:
我在同一目录中有大约 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循环,并详细说明哪个部分不起作用? -
感谢您的建议。我已经编写了 for 循环。我不怎么处理的部分是如何为每个 .rdata 文件创建一个新页面。
-
查看
pander包的Renderingmarkdowntables inside of of loop inknitr小插图。 -
请注意,也有一些方法可以使用 R 命令来探索文件目录。如果您的目录仅包含您要加载的文件,那么您可以执行以下操作:
names <- dir()或names <- list.files()。 (这些命令也支持正则表达式文件名模式匹配;请参阅帮助文件。)