Переменные неизвестны при использовании rmarkdown :: render - PullRequest
0 голосов
/ 09 мая 2018

Когда я отрисовываю RMD, автоматически вызывая rmarkdown::render() в R-Script, я сталкиваюсь с проблемами, когда - в самом RMD - я пытаюсь получить доступ к списочным переменным. В этом примере я хочу просмотреть содержимое переменной списка и отобразить таблицу для каждого списка.

Первый кусок

# This works
```{r, echo = FALSE, results='show'}
knitr::kable(a[[1]])
```

в RMD рендеринг успешно. Тем не менее, второй раздел чанка

# This doesn't work
```{r, echo = FALSE, results='show'}
for (i in 1:length(a)) {
  knitr::kable(a[[i]])
}

вообще не оценивает. Там даже нет ошибки / предупреждения. Полный вывод отображается следующим образом:

enter image description here

Как я могу успешно отрендерить второй блок с именем «Это не работает»? Я ожидаю увидеть здесь 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]])
}
```

1 Ответ

0 голосов
/ 09 мая 2018

Мое решение: измените свой последний кусок на

```{r, echo = FALSE, results='asis'}
for (i in 1:length(a)) {
 print(knitr::kable(a[[i]]))
}
```
...