【问题标题】:Unexported object imported by a ':::' call: 'tsfeatures:::scalets'':::' 调用导入的未导出对象:'tsfeatures:::scalets'
【发布时间】:2020-07-21 21:41:39
【问题描述】:

做完 devtools::check(cran=TRUE) 我收到了这个警告。 我看到其他人说我们不能在 CRAN 上使用“:::”。 那么,如何解决这个问题呢?感谢您的帮助!

> checking dependencies in R code ... NOTE
  Unexported object imported by a ':::' call: 'tsfeatures:::scalets'
    See the note in ?`:::` about the use of this operator.

【问题讨论】:

    标签: r package


    【解决方案1】:

    在这里你可以找到答案。 https://github.com/drsimonj/twidlr/issues/16

    总结起来有很多选择:

    • 联系包作者并要求他们导出相关功能。
    • 复制函数源码并适当引用作者。在 man 文件中使用 roxygen2 @references 或手动 \references。在我看来,如果此功能是您包中的众多功能之一,则功能级别的参考是令人满意的。请记住,特定函数可能依赖于包中的许多其他函数,因此必须复制大量代码。
    • 另一个技巧是使用 getFromNamespace() fun <- utils::getFromNamespace("fun", "pkg")。构建包时,函数的顺序和位置无关紧要(除非您使用 S4 或其他外来对象)。

    【讨论】:

    • 感谢您的回复。你介意解释一下如何使每种方法都适用吗?我想使用方法 2 或 3。但不确定我应该在哪里引用作者(在描述或 R 代码部分)。对于方法 3,我应该在我构建的函数之前添加 getFromNamespace() 吗?谢谢
    • 嘿,当我在函数之前使用tsfeatures<-utils::getFromNamespace("tsfeatures", "scalets") 时,错误提示“loadNamespace(name) 中的错误:没有名为‘scalets’的包”
    • 您必须记住使用 scalets 包更新 Imports 部分中的 DESCRIPTION 文件。
    • 对于方法2,就是这个意思。我从其他人的包中复制该特定功能代码,然后评论有关作者的参考。但是如果我这样做并且不再使用“:::”,就会出现更多错误。
    • 从方法 3 中,我得到的错误是 ``` utils::getFromNamespace("tsfeatures") 中的错误:指定的环境不是包```
    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2014-10-21
    相关资源
    最近更新 更多