从RStudio服务器渲染rmarkdown到外部驱动器

时间:2016-10-27 15:12:17

标签: r r-markdown shiny-server rstudio-server

在本地工作时,我使用以下内容呈现rmarkdown文档:

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)

并看到新文件夹出现。有关渲染被卡住的任何想法吗?

更新

这可能只是一个权限问题,因为我无法编写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文件夹权限的新问题。

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的任何人,可以通过将其添加到脚本的开头来修复它:

Sys.umask(mode="0000")

这是一个许可问题。在shell /命令行中,全局权限为&#34; 0000&#34;但是从RStudio控制台来看,它是&#34; 0002&#34;,它为新文件产生-rw-r--权限。可能会为RStudio更改全局权限,但这可行。