Почему установка рабочего каталога в R Notebook не меняет рабочий каталог в консоли?

Rstudio заявляет, что:

текущий рабочий каталог внутри фрагмента блокнота всегда является каталогом, содержащим файл ноутбука .Rmd.

Понял. Но если в записной книжке мы setwd() к чему-то (либо к «каталогу, содержащему файл .Rmd записной книжки», либо куда-то еще, не имеет значения), это не устанавливает рабочий каталог в консоли, только в записной книжке.

Верно и обратное: установка рабочего каталога в консоли не меняет рабочий каталог в блокноте — хотя это отчасти объясняется вышеизложенным.

Единственный способ установить рабочий каталог как в консоли, так и в ноутбуке, похоже, - запустить один и тот же вызов setwd() как в консоли, так и в ноутбуке.

Почему?

Есть ли способ упростить это, чтобы рабочий каталог автоматически был одинаковым как для ноутбука, так и для консоли после вызова setwd(), вместо того, чтобы сбивать с толку два «параллельных» рабочих каталога?

Предполагается, что вы не одиноки в работе с ноутбуков, а выполняете «грязную работу» и быстрые проверки, которые не планируете хранить в консоли. Поэтому такое поведение рабочего каталога довольно неприятно.


person QuishSwash    schedule 29.06.2017    source источник


Ответы (1)


Это объясняется на сайте rmarkdown. Он предлагает использовать:

```{r setup}
    knitr::opts_knit$set(root.dir = normalizePath("path")) 
```

где path обозначает путь к рабочему каталогу, который вы хотите установить.

Убедитесь, что вы указали рабочий каталог в блоке setup.

======

Я считаю, что причина этого только в изменении рабочего каталога в ноутбуке, но не в консоли, связана с идеей, что это «блокнот». Как только вы начнете использовать ноутбук, все будет готово.

code
output

формат. Таким образом, результаты отображаются под кодом. Консоль больше не нужна. Консоль хранится отдельно, возможно, для других нужд. Он похож на Юпитер. Там у вас есть только код и выходные ячейки, больше ничего. В нем нет ни консоли, ни разделов переменных. Чисто и аккуратно.

person ilyas    schedule 10.11.2017
comment
Это полезная информация, но решает другую проблему. При этом изменяется рабочий каталог только во всех фрагментах записной книжки, он не меняет рабочий каталог в консоли, что меня и интересует. - person QuishSwash; 15.11.2017
comment
В отношении этого ответа следует отметить, что из документации, на которую вы ссылаетесь, Также обратите внимание, что, как и в Knitr, параметр фрагмента root.dir применяется только к фрагментам. Это означает, что если вы измените wd в фрагменте и прочитаете другой скрипт, использующий относительные пути, R будет обрабатывать эти относительные пути из каталога файла .Rmd. - person cookesd; 24.02.2021