在我编写的包中,在描述文件中,以下是一些导入:
Imports: jsonlite,
tibble,
shiny,
ggplot2,
plotly (>= 4.5.6.9000),
dplyr,
purrr,
lubridate
但是当我像这样加载我的包时:
devtools::load_all()
上面只有其中一些包会附加到工作区。例如,附有 dplyr,但情节上没有。
什么决定了当加载"my_package"时,描述文件的"import"语句中的哪些包加载到工作区
"加载"和"附加"之间是有区别的。 加载意味着包在内存中,因此包中的函数可以调用其中的函数。 附加意味着它在搜索列表中,因此用户可以调用其中的函数。
如果附加了包,则还必须加载它,但可以加载包而不显示在搜索列表中。
如果您使用双冒号表示法,例如 purrr::map
,则 R 将检查是否已加载purrr
,如果没有,则加载它,但它不会将其添加到搜索列表中。 第二次进行这样的调用时不需要加载它,因为包通常在加载一次后保持加载状态。