我正在尝试构建自己的软件包,并且我的所有代码都在子目录pkg / R文件夹中。
在我的main_code.R中,我通过执行以下操作来引用其他代码:
source("./R/code1.R")
source("./R/code2.R")
当我尝试构建我的包时,这些方法似乎失败了:
source("/R/code1.R")
source("./code1.R")
source("code1.R")
ERROR: lazy loading failed for package 'pkg'
在构建软件包后运行roxygen2 :: roxygenise()时,这是我得到的错误:
Error in file(filename, "r", encoding = encoding) :
cannot open the connection
In addition: Warning messages:
1: Version of roxygen2 last used with this package is 6.0.1.9000. You only have version 6.0.1
2: In file(filename, "r", encoding = encoding) :
cannot open file './R/code1.R': No such file or directory
如果我在main_code中设置工作目录,我似乎可以解决这个问题:
setwd("C:/Desktop/pkg")
但是,我不想在我的包中设置工作目录,因为我打算在不同的计算机上运行它。我在部署包时可以删除或注释setwd命令,但我觉得我错过了什么。
我在这里阅读https://github.com/STAT545-UBC/Discussion/issues/71,如果你的代码在pkg / R文件夹中,你不需要引用你的代码,但如果忽略它们,我的包就无法构建。我还尝试将我的代码添加为描述文件中的Collate的一部分,但是也无法构建。
有人可以指出我在这里缺少什么吗?