在构建R包时,如何将文件保存到用户工作目录



我正在学习构建R包(myPkg(,并具有将rds文件保存到工作目录的功能,如

myPkg_fun <- (path = ".") {
str <- "Hello World"
out_path <- file.path(path, "str.rds")
saveRDS(str, out_path)
}

我可以使用RStudio在另一个项目中安装和加载我的包library(myPkg),但我不能将.rds保存到我的(用户(工作目录中。

当我使用myPkg::myPkg_fun(path=".")时,.rds实际上保存在/Library/Frameworks/R.framework/Versions/4.0/Resources/library/myPkg/examples/中。我认为将包路径连接到用户的工作目录缺少一些步骤。

有人能帮我吗?非常感谢。

由于在R中创建新包非常容易(多亏了RStudio和devtoolsusethis等包(,我创建了一个具有单个函数myPkg_fun()的最小包。

我建议

  1. 查看GitHub repo,看看包中有什么,以及与本地包相比是如何设置的
  2. 使用remotes::install_github("mevers/myPkg")安装软件包
  3. 打开新的R终端(或启动新的RStudio实例,确保没有打开任何项目(并导航到特定的工作文件夹。确保CCD_ 12或";更多>设置为工作目录";在RStudio文件浏览器窗口中
  4. 执行library(myPkg); myPkg_fun()并观察RDS文件是如何保存在本地工作文件夹中的

很抱歉没有把问题说清楚。我正在构建的pkg是一个闪亮的库。我找到了原因,因为myPkg_fun()是在一个闪亮的应用程序中运行的,默认情况下,工作目录是app.R所在的位置。

解决方案是

  1. 在env变量中设置用户的工作目录
  2. 读取env变量并强制将工作目录重置为应用程序中用户的工作目录

这样.rds就可以保存到正确的文件夹中。

最新更新