函数未按预期导入
Functions not importing as expected
我有一连串的两个包裹。然而,即使我导入了第一个,一些函数仍然抱怨它们不存在。
以下是软件包文档的相关部分:
这是我正在加载的 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
函数:gather
、spread
、separate
, 和 unnest
通过 packageB
中的 @importFrom
文档,但它没有。
所以,当我加载 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
我在 packageB
的 @import
指令中添加了 tidyr
#' @docType package
#' @name packageB
#' @import extrafont ggplot2 knitr tidyr dplyr
@importFrom 仅在直接调用包时有效,通过其他包调用包时无效。
我有一连串的两个包裹。然而,即使我导入了第一个,一些函数仍然抱怨它们不存在。
以下是软件包文档的相关部分:
这是我正在加载的 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
函数:gather
、spread
、separate
, 和 unnest
通过 packageB
中的 @importFrom
文档,但它没有。
所以,当我加载 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
我在 packageB
@import
指令中添加了 tidyr
#' @docType package
#' @name packageB
#' @import extrafont ggplot2 knitr tidyr dplyr
@importFrom 仅在直接调用包时有效,通过其他包调用包时无效。