使用 rmarkdown::render 时变量未知
Variables unknown when using rmarkdown::render
当我在 R-Script 中渲染一个自动调用 rmarkdown::render()
的 RMD 时,我 运行 遇到了麻烦——在 RMD 本身中——我试图访问列表变量。在示例中,我想遍历列表变量的内容并为每个列表呈现一个 table。
第一个区块
# This works
```{r, echo = FALSE, results='show'}
knitr::kable(a[[1]])
```
RMD 内渲染成功。然而,第二节 chunk
# This doesn't work
```{r, echo = FALSE, results='show'}
for (i in 1:length(a)) {
knitr::kable(a[[i]])
}
根本不评价。甚至没有 error/warning。完整的输出呈现如下:
如何才能成功渲染名为“这不起作用”的第二个块?我希望在这里看到 3 个列表,显示数字 1:10、11:20、21:30.
可重现的示例:将以下脚本另存为 render.R
:
setwd("C:/path_to_your_script_location/")
# generate a list containing 3 lists
a <- list(list(tour_id=1:10), list(tour_id=11:20), list(tour_id=21:30))
rmarkdown::render("test.Rmd", output_dir = "./", output_file = "out_test.html",
encoding = "UTF-8", quiet = TRUE)
并将以下内容保存为test.Rmd
:
---
title: Test
author: "Author"
date: "May 9th, 2018"
output: html_document
---
# This works
```{r, echo = FALSE, results='show'}
knitr::kable(a[[1]])
```
# This doesn't work
```{r, echo = FALSE, results='show'}
for (i in 1:length(a)) {
knitr::kable(a[[i]])
}
```
我的解决方案:将最后一个块更改为
```{r, echo = FALSE, results='asis'}
for (i in 1:length(a)) {
print(knitr::kable(a[[i]]))
}
```
当我在 R-Script 中渲染一个自动调用 rmarkdown::render()
的 RMD 时,我 运行 遇到了麻烦——在 RMD 本身中——我试图访问列表变量。在示例中,我想遍历列表变量的内容并为每个列表呈现一个 table。
第一个区块
# This works
```{r, echo = FALSE, results='show'}
knitr::kable(a[[1]])
```
RMD 内渲染成功。然而,第二节 chunk
# This doesn't work
```{r, echo = FALSE, results='show'}
for (i in 1:length(a)) {
knitr::kable(a[[i]])
}
根本不评价。甚至没有 error/warning。完整的输出呈现如下:
如何才能成功渲染名为“这不起作用”的第二个块?我希望在这里看到 3 个列表,显示数字 1:10、11:20、21:30.
可重现的示例:将以下脚本另存为 render.R
:
setwd("C:/path_to_your_script_location/")
# generate a list containing 3 lists
a <- list(list(tour_id=1:10), list(tour_id=11:20), list(tour_id=21:30))
rmarkdown::render("test.Rmd", output_dir = "./", output_file = "out_test.html",
encoding = "UTF-8", quiet = TRUE)
并将以下内容保存为test.Rmd
:
---
title: Test
author: "Author"
date: "May 9th, 2018"
output: html_document
---
# This works
```{r, echo = FALSE, results='show'}
knitr::kable(a[[1]])
```
# This doesn't work
```{r, echo = FALSE, results='show'}
for (i in 1:length(a)) {
knitr::kable(a[[i]])
}
```
我的解决方案:将最后一个块更改为
```{r, echo = FALSE, results='asis'}
for (i in 1:length(a)) {
print(knitr::kable(a[[i]]))
}
```