将Rstudio插件包中包含的.rmd文件复制到用户定义的目录中

And*_*lor 5 r file-copying r-package

在这里有一个rstudio addin包.

其中一个插件允许用户定义目录,它会将位于包中的文件复制到该目录.

该文件位于:

atProjectManageAddins/inst/Docs/RMarkdownSkeleton.Rmd
Run Code Online (Sandbox Code Playgroud)

我试图将它复制到用户定义的目录,如下所示:

 file.copy("inst/Docs/RMarkdownSkeleton.Rmd", 
           paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))
Run Code Online (Sandbox Code Playgroud)

我试图将它从包中的位置复制到用户定义的位置(基于两个单独的参数DirFolderName).

但这似乎不起作用.我的假设是我没有以正确的方式引用包目录.我试过了./Inst/,~/Inst/也许还有几个.我现在的假设是,有一个更系统的原因导致我无法file.copy()上班.

有什么建议?这甚至可能吗?

请注意,如果我通过source()和本地运行该功能runGadget(),它可以正常工作.只有在安装软件包并且我使用RStudio addins GUI引用它的软件包时,它才会失败.因此,我很确定我没有正确定义已安装.Rmd文件的文件路径.

编辑:我已经根据Carl的建议(在github上可以看到)更改为以下内容,但文件仍未被复制.

file.copy(system.file("Docs","Rmarkdownskeleton.rmd",package="atProjectManageAd??dins"),
 paste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))
Run Code Online (Sandbox Code Playgroud)

Car*_*arl 4

system.file是从包中获取文件的最佳函数。我相信这应该对你有用:

\n\n
file.copy(system.file("Docs","Rmarkdownskeleton.rmd",package="atProjectManageAd\xe2\x80\x8c\xe2\x80\x8bdins"),\npaste0(Dir, FolderName, "/Reports/", FolderName, "_report.Rmd"))\n
Run Code Online (Sandbox Code Playgroud)\n