是什么决定了哪些从属软件包被加载到工作空间中?

时间:2019-01-10 19:28:28

标签: r

在我写的包中,在描述文件中,有一些导入:

Imports: jsonlite,
    tibble,
    shiny,
    ggplot2,
    plotly (>= 4.5.6.9000),
    dplyr,
    purrr,
    lubridate

但是当我像这样加载我的包时:

devtools::load_all()

只有上述那些软件包中的某些才被附加到工作区。例如,附加了dplyr,但没有附加。

什么决定了描述文件的“ import”语句中的哪些包在加载“ my_package”时被加载到工作区

1 个答案:

答案 0 :(得分:0)

“加载”和“附加”之间是有区别的。加载意味着程序包在内存中,因此程序包中的函数可以调用其中的函数。被附加意味着它在搜索列表中,因此用户可以在其中调用函数。

如果已附加软件包,则也必须加载它,但是可以加载软件包而不会出现在搜索列表中。

如果您使用双冒号表示法,例如purrr::map,则R将检查是否已加载purrr,如果未加载,则将其加载,但不会将其添加到搜索列表中。不需要在第二次这样的调用时加载它,因为包通常在加载一次后便保持加载状态。