好吧,第一次尝试编写 R 包,我被卡住了。这是我创建包的方式:
package.skeleton("pkg",code_files=some.filenames)
roxygenize("okg")
我正在使用 roxygen2 并在我的“pkg-package.R”文件中有以下导入:
@import data.table zoo lubridate
然后从终端运行:
R CMD build pkg
R CMD check pkg
R CMD install pkg
在检查阶段,我收到以下警告:
** 为延迟加载准备包
警告:加载“lubridate”时替换之前的导入“小时”<br> 警告:加载“lubridate”时替换之前的导入“mday”<br> 警告:加载“时”替换之前的导入“月” lubridate'<br> 警告:加载 'lubridate' 时替换之前的导入 'wday'<br> 警告:加载 'lubridate' 时替换之前的导入 'week'
警告:加载 'lubridate' 时替换之前的导入 'yday'<br>警告:在加载“lubridate”时替换之前的导入“年份”<br> ** 帮助
*安装帮助索引
** 构建包索引 ...
** 测试是否可以加载已安装的包
警告消息:
1:加载“lubridate”时替换之前的导入“小时”<br> 2:加载“lubridate”时替换之前的导入“mday”<br> 3:加载“lubridate”时替换之前的导入“月”<br> 4:加载“lubridate”时替换上一个导入“wday”<br> 5:加载“lubridate”时替换上一个导入“周”<br> 6:加载“lubridate”时替换上一个导入“yday”<br> 7:替换上一个加载“lubridate”时导入“年份”
我真的不知道该怎么做,但它们似乎是覆盖命名空间中的东西的典型警告。无论如何,我都可以安装该软件包,但是当我尝试使用它时会发生以下情况:
library(pkg)
覆盖 POSIXt、Date 和 difftime 的 + 和 - 方法
警告消息:
1:加载“lubridate”时替换之前的导入“小时”<br> 2:加载“lubridate”时替换之前的导入“mday”<br> 3: 加载 'lubridate' 时替换之前的导入 'month'<br> 4: 加载 'lubridate' 时替换之前的导入 'wday'<br> 5: 加载 'lubridate' 时替换之前的导入 'week'<br> 6:加载“lubridate”时替换先前的导入“yday”<br> 7:加载“lubridate”时替换先前的导入“年”<br> d <- my.function(arg1, arg2)
MATCH(x, x) 中的错误:找不到功能“匹配”
使用 traceback(),我发现这是在调用 merge.zoo() 期间生成的。所以我尝试在我的 R 会话期间手动加载动物园,瞧,然后该功能正常工作而没有错误消息。
我已经尝试在“pkg-package.R”文件以及 NAMESPACE 中手动更改导入的顺序。但是,根据我在其他地方找到的内容,我没有添加任何 Imports 或 Depends 到DESCRIPTION。帮助?