我正在学习构建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和devtools
和usethis
等包(,我创建了一个具有单个函数myPkg_fun()
的最小包。
我建议
- 查看GitHub repo,看看包中有什么,以及与本地包相比是如何设置的
- 使用
remotes::install_github("mevers/myPkg")
安装软件包 - 打开新的R终端(或启动新的RStudio实例,确保没有打开任何项目(并导航到特定的工作文件夹。确保CCD_ 12或";更多>设置为工作目录";在RStudio文件浏览器窗口中
- 执行
library(myPkg); myPkg_fun()
并观察RDS文件是如何保存在本地工作文件夹中的
很抱歉没有把问题说清楚。我正在构建的pkg是一个闪亮的库。我找到了原因,因为myPkg_fun()
是在一个闪亮的应用程序中运行的,默认情况下,工作目录是app.R
所在的位置。
解决方案是
- 在env变量中设置用户的工作目录
- 读取env变量并强制将工作目录重置为应用程序中用户的工作目录
这样.rds
就可以保存到正确的文件夹中。