功能未按预期导入

时间:2016-01-08 17:02:23

标签: r roxygen2 tidyr

我有两个包的链。然而,即使我导入了第一个函数,一些函数仍抱怨它们不存在。

以下是包文档的相关部分:

这是packageA我正在加载,我希望它可以提取由packageB导入的所有内容:

#' @import packageB
#' @name packageA
#' @docType package

这是packageB包中的相关部分:

#' @docType package
#' @name packageB
#' @import extrafont ggplot2 knitr dplyr
#' @importFrom tidyr gather spread separate unnest

问题在于,当我加载packageA时,我的期望是它还会导入tidyr函数:gatherspreadseparateunnest通过@importFrom中的packageB文档,但它没有。

所以,当我加载packageA时:

library(packageA)
a_packageB_fun(...)
error: cannot find function 'gather'

但是,我已经调用了它,它位于packageA

的命名空间中

我做错了什么?

更新:

sessionInfo():

R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 15.10

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C               LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8     LC_MONETARY=en_CA.UTF-8   
 [6] LC_MESSAGES=en_CA.UTF-8    LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] credobb2_1.2   surv3_1.01     dplyr_0.4.3    extrafont_0.17 ggplot2_1.0.1  knitr_1.12    

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.2      tidyr_0.3.1.9000 digest_0.6.8     assertthat_0.1   MASS_7.3-43      grid_3.2.2       R6_2.1.1         plyr_1.8.3      
 [9] Rttf2pt1_1.3.3   gtable_0.1.2     DBI_0.3.1        magrittr_1.5     scales_0.3.0     stringi_1.0-1    reshape2_1.4.1   extrafontdb_1.0 
[17] proto_0.3-10     tools_3.2.2      stringr_1.0.0    munsell_0.4.2    parallel_3.2.2   colorspace_1.2-6

1 个答案:

答案 0 :(得分:0)

我将tidyr添加到@import

packageB指令中
#' @docType package
#' @name packageB
#' @import extrafont ggplot2 knitr tidyr dplyr

@importFrom仅在直接调用包时才有效,而不是在通过另一个包调用包时。