2016-10-27 2 views
4

При работе на местном уровне, я использую следующие для визуализации rmarkdown документы:Рендер rmarkdown с сервера RStudio на внешний диск

rmarkdown::render(input = rmd.temp , output_dir = out.dir, output_file = out.name) 

Это получает мой шаблон док rmd.temp, затем делает документ out.dir и имена файлов по out.name.

Я пытаюсь выполнить репликацию на сервере RStudio. Когда out.dir является локальным каталогом, код работает нормально. Однако, когда out.dir будет отображенный каталог на внешний диск, я получаю следующее сообщение об ошибке:

Error in replayPlot(x) : 
    could not open file'/...path..../figure-html/unnamed-chunk-2-1.png' 

Ссылка на ленточном накопителе работает, потому что я могу использовать:

dir.create(out.dir) 

и увидеть новую папку появляются. Любые идеи, почему рендеринг застревает?

Update

Это возможно только проблема разрешения, потому что я не могу записать файл CSV либо:

df <- data.frame(a=1:10) 

setwd(out.dir) 

write.csv(df, file = "df.csv") 

Error in file(file, ifelse(append, "a", "w")) : 
    cannot open the connection 

RStudio сервер работает на Ubuntu. Я открою новый вопрос о том, как предоставить разрешения для папки RStudio.

ответ

0

Для тех, кто имеет эту проблему, она может быть исправлена, добавив в начале вашего скрипта:

Sys.umask(mode="0000") 

Это была проблема разрешения. В командной строке shell/глобальное разрешение было «0000», но из консоли RStudio было «0002», которое создает -rw-r-- разрешения для новых файлов. Возможно, глобальное разрешение может быть изменено для RStudio, но это работает.

Смежные вопросы