【问题标题】:Loading multiple R packages with a single command使用单个命令加载多个 R 包
【发布时间】:2017-08-04 14:33:59
【问题描述】:

多个R包可以使用pacmanR包中的函数p_load函数通过以下命令加载:

pacman::p_load("ggplot2", "lme4")

但是,我想使用这样的命令

Packages <- c("ggplot2", "lme4")
pacman::p_load(Packages)

这不起作用。想知道如何做到这一点?

【问题讨论】:

  • 我认为这是一个非常糟糕的主意。每行加载一个包。出于这个原因,也不是pacman::p_load 的粉丝。我们不喜欢人们在同一行声明多个变量。出于完全相同的原因,我们应该在同一行加载多个包时执行相同的操作。

标签: r packages pacman-package-manager


【解决方案1】:

character.only 设置为TRUE

Packages <- c("ggplot2", "lme4")
Packages %in% loadedNamespaces() # check if the packages are loaded
# [1] FALSE FALSE

pacman::p_load(Packages, character.only = TRUE)

Packages %in% loadedNamespaces()
# [1] TRUE TRUE

来自?p_load

character.only:逻辑。如果为 TRUE,则 p_load 将只接受单个输入,该输入是包含要加载的包名称的字符向量。”

【讨论】:

    【解决方案2】:

    或者,do.call(p_load, packages)

    你也可以在没有吃豆人的情况下做到这一点:

    lapply(packages, require, character.only = TRUE)
    

    但正如其他人所说,不推荐,因为它会降低清晰度。

    【讨论】:

      【解决方案3】:

      p_load 函数中使用参数char

      char:包含要加载的包的字符向量

      foo <- c("data.table", "ggplot2")
      pacman::p_load(char = foo)
      

      【讨论】:

        猜你喜欢
        • 2020-11-29
        • 1970-01-01
        • 1970-01-01
        • 2019-02-26
        • 1970-01-01
        • 1970-01-01
        • 2018-03-04
        • 1970-01-01
        • 2013-03-05
        相关资源
        最近更新 更多