【问题标题】:How do I clear Error: object <some function> is not exported by 'namespace:<some package>' which shows up when building my R package?如何清除错误:对象 <some function> 不是由 'namespace:<some package>' 导出的,它在构建我的 R 包时出现?
【发布时间】:2017-01-11 06:23:25
【问题描述】:

我正在使用 R Studio 创作一个 R 包。每次单击“构建和重新加载”时,我都会设置我的 R Studio 首选项来创建 Roxygen 文档。我创建了一个导出函数的形式:

#' @title Dummy function
#'
#' @importFrom stats kurtosis
#' @importFrom magrittr %<>%
#' @importFrom dplyr mutate
#' @param input.df Input data frame
#'
#' @export

dummy.function <- function(input.df)
{
  output.df %<>% mutate(col2 = kurtosis(col1))
  return(output.df)
}

点击“Build & Reload”后不久,我意识到峰度包含在 e1071 包中,不是 stats 包中。但是,在我的 Roxygen cmets 中修复此问题后,每当我执行 Build & Reload 时都会收到以下错误:

Error: object "kurtosis" is not exported by 'namespace:stats'

我的包裹好像坏了?如何修复它?

【问题讨论】:

    标签: r rstudio r-package


    【解决方案1】:

    事实证明,使用 Roxygen cmets 即时写出的“构建和重新加载”工作流程的一个缺陷是,NAMESPACE 文件是在构建包之前写入的,但在更改包时没有修复或调整Roxygen cmets。事实证明,在上面的示例中,NAMESPACE 文件具有以下行:

    importFrom(stats,kurtosis)
    

    即使在我将 importFrom Roxygen 注释更改为从 e1071 获取峰度而不是统计数据后,这条线仍然存在。从 NAMESPACE 文件中删除有问题的行将解决问题。

    【讨论】:

      猜你喜欢
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      相关资源
      最近更新 更多