R Notebook / Markdown не сохраняет чанки, используя опцию "fig.path =" chunk - PullRequest
1 голос
/ 29 октября 2019

Я выполняю анализ в блокноте R и хотел бы, чтобы все графики, созданные в фрагментах R, были сохранены в виде отдельных файлов PDF в дополнение к , отображаемому в .nbВывод .html в блокнот.

Проблема

Проблема, с которой я столкнулся, заключается в том, что при запуске ноутбука он не сохраняет графики в каталог, указанный в параметре чанка fig.path = "figures/"либо если указано в отдельном заголовке блока:

#```{r fig.path = "figures/"}
plot(x, y)
#```

, либо когда указано с помощью глобальных параметров блока:

#```{r setup}
library(knitr)
opts_chunk$set(fig.path = "figures/")
#```

#```{r}
plot(x, y)
#```

На самом деле, отсутствует каталог с именем *figures/ вообще, где угодно . ни в корневой директории проекта, ни в директории, где находится скрипт .Rmd. Даже когда я вручную создаю папку proj_root/figures/, графики здесь не выводятся.

Что я пробовал

  • Я пытался установить параметры чанков для одного чанка, который выводитсяграфик fig.path = "figures/", который ничего не производит
  • В блоке установки я запустил следующие строки:
# load knitr package
library(knitr)
# set all subsequent chunks' working dir as the project root dir
opts_knit$set(root.dir = rprojroot::find_rstudio_root_file())
# set this first setup chunk working dir to project root dir (since the previous line does not affect the chunk it's run in)
setwd(rprojroot::find_rstudio_root_file())
# Check current working dir
getwd() # CORRECTLY OUTPUTS R.PROJECT ROOT DIR

# Set all chunks to output plots to the dir "figures/"
opts_chunk$set(fig.path = "figures/") # This should output all chunk plots to "project-root/figures/"

, что, как я полагаю, должно сделать project-root/figures/ и выведите все чанки там, в дополнение к их сохранению в отчете .nb.html.

Я также попытался указать dev = "pdf" в опции глобальных чанков в opts_chunk$set(dev = "pdf", fig.path = "figures/"), ноэто ничего не меняет.

Я понятия не имею, что я делаю неправильно, и везде, где я искал, ни один из вариантов не работает, в том числе:

Документация knitr бесполезна, поскольку описывает только блок чанков fig.path =, но не устраняет неполадки, если он не работает. Нужно ли добавлять другие параметры блока fig.*** =, чтобы он работал? Разве он не должен работать только с установкой опции fig.path =?

Имеет ли это какое-либо отношение к моему выводу YAML, равному html_notebook вместо вывода на уценку или html_document?

Ближайший пост с моей проблемой, с которым я столкнулся, - это: R Блокнот: включите цифры в отчет и сохраните графики , но он не был решен с 2018 года, и я не уверен, как «продвигать»этот пост, кроме создания нового и ссылки на него.

1 Ответ

2 голосов
/ 30 октября 2019

Я протестировал, и опция fig.path работает как положено. проверьте следующее значение:

Редактировать : убедитесь, что в заголовке RAMD YAML установлен тип вывода output: html_document, а также нажмите Knit to HTML, чтобы активировать сохранение рисунков. ,Это отдельно от и может быть выполнено после запуска документа Rmd в интерактивном режиме или с помощью Run All. См. Комментарии ниже

---
title: "Untitled"
author: "TC"
date: "10/30/2019"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, fig.path="testit/")
```

## R Markdown

/12850809/kak-vy-zapuskaete-fail-r-v-ubuntucomment103544013_58600399

```{r pressure, echo=FALSE}
plot(pressure)
```

```{r pressure2, echo=FALSE}
plot(pressure)
```


```{r echo=FALSE}
plot(pressure)
```

исходный код

и вот сгенерированные цифры при тестировании

...