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