【问题标题】:These packages need to be imported from (in the NAMESPACE file)这些包需要从(在 NAMESPACE 文件中)导入
【发布时间】:2014-05-07 14:00:26
【问题描述】:

在尝试创建本地 R 包时,我将一些依赖包列为 Depends:

...
Description: NA
License: GPL-2
Depends:R (>= 2.15.0),
    survival,
    PropCIs,
    boot,
    msm,
    reshape2
LazyData: true

但我通过运行 R CMD 检查得到这些消息:

 *checking dependencies in R code ... NOTE
Packages in Depends field not imported from:
  ‘PropCIs’ ‘boot’ ‘msm’ ‘reshape2’ ‘survival’
  These packages need to be imported from (in the NAMESPACE file)
  for when this namespace is loaded but not attached.

然后我使用手动将这些包添加到 NAMESPACE 文件中,但它确实有效,并且在检查后自动删除了导入行。

另一个奇怪的事情是显示的检查过程:

R CMD check succeeded

但文件随后系统/自动消失或删除。

有人知道原因吗?

【问题讨论】:

  • 您是否使用 roxygen2/devtools(可能通过 RStudio)进行开发? NAMESPACE 文件将自动生成,因此您需要确保您的 roxygen 代码中有正确的 @imports 指令...
  • 作为一个附带问题 - 你真的需要 Depends 而不是 Imports 中的所有这些吗?
  • 稍微搜索一下就会找到详细解释:stat.ethz.ch/pipermail/r-help/2013-October/361984.html。阅读Writing R Extensions 也可能有助于清除导入/依赖。
  • 谢谢大家。是的,我通过 RStudio 使用 roxygen2 和 devtools。但是如果我从终端而不是通过 RStudio 检查包似乎没有问题。我猜 RStudio 可能有一个小错误。

标签: r package


【解决方案1】:

只需将以下行添加到您的 roxygen 代码中:

@import PropCIs boot msm reshape2 survival

【讨论】:

  • 该标签应该放在哪里?
  • 我把它放在与调用函数的文档相关的roxygen代码中。
  • 我把包文档 ``` #' Oak #' #' Automate SDTMv Mapping, Specifications Generation #' #' @docType package #' @name Oak #' @noRd #' @import rgdsr #' NULL ```
猜你喜欢
  • 1970-01-01
  • 2020-10-03
  • 2015-01-14
  • 1970-01-01
  • 2022-01-25
  • 2015-06-26
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
相关资源
最近更新 更多