【发布时间】:2022-07-08 19:45:30
【问题描述】:
我有一个 rmarkdown,它循环呈现其他 rmarkdown 的列表:
```{r}
for(i in 0:22){
save(i, file = "/path/to/i.RData")
rmarkdown::render("path/to/secondRmarkdown.Rmd", output_file = paste0("/path/to/Results/Report_", i, ".html"))
}
```
在这个块之前,我在同一个 rmarkdown 中有一个非常相似的块,它在编织主块时循环没有问题。此外,当我手动运行块时,它也会循环。
但是,在编织时,此特定块在仅渲染 i=0 的第一个 rmarkdown 文件(成功)后给出以下错误:
# Error in rep_len(label, length(meta): cannot replicate NULL to a non-zero length
我将 secondRmarkdown.Rmd 修改为一个简单的文件,以确保它不是其中的内容:
```{r}
load(file = "/path/to/i.RData")
print(i)
```
我有 Ubuntu 5.13.0-40。 R 版本 4.2.0、Rstudio 版本 2022.02.2、rmarkdown 版本 2.14
有什么想法吗?蒂亚!
【问题讨论】:
-
对某些人来说很明显;对其他人来说并不明显(我知道但有时仍会搞砸)。您是否确保将 RMD 中的任何路径引用记录为 RMD 的位置作为 RMD 的“工作目录”?也许,不是字面上的,但出于所有意图和目的,这基本上就是发生的事情。而对于 R 文件,当前工作目录正是您设置的目录。
-
嗨@Kat,我实际上已经尝试过了。在我循环的块和循环的 rmarkdown 中设置 wd。仍然只渲染系列的第一个元素:(
标签: r-markdown