【问题标题】:load multiple packages AND supress messages加载多个包并抑制消息
【发布时间】:2018-03-22 21:34:05
【问题描述】:

阅读this 的帖子。 和this 一个。

我想在一个单机中加载包并同时抑制suppressPackageStartupMessages

第一个链接中的答案使用 lapply:

packages <- c("tidyverse", "qdap", "stringr", "stringi", "textstem", "foreach", "caret", "xgboost", "quanteda")
lapply(packages, require, character.only = T)

这会向控制台返回一个难看的列表:

[[1]]
[1] TRUE

[[2]]
[1] TRUE

[[3]]
[1] TRUE

[[4]]
[1] TRUE

另外,我还想摆脱那些在加载时发送到控制台的消息,例如

> library(tidyverse)
Loading tidyverse: ggplot2
Loading tidyverse: dplyr
Conflicts with tidy packages --------------------------------------------------------------------
accumulate(): purrr, foreach
filter():     dplyr, stats
lag():        dplyr, stats
when():       purrr, foreach

有没有一种既聪明又快捷的方法来加载包向量和suppressPackageStartupMessages?

【问题讨论】:

标签: r


【解决方案1】:

一种选择是

pacman::p_load(packages)

【讨论】:

  • 为此我必须先加载 pacman library(pacman) 然后使用 pacman 加载所有其他库吗?显然,额外的代码行没什么大不了的,但如果我是迂腐的话,目标是整齐地调用一个 oner 中的所有包。
  • @DougFir 在我普通的新控制台中,我执行pacman::p_load(reshape2, stringr, overflow, data.table, dplyr, tidyr, purrr),它一步加载所有这些包,没有警告
  • 啊,对了,因为 library:: 就像调用库一次对吗?
  • 这也很好,如果pacman 已经安装或者有人可以安装它。
【解决方案2】:

您可以执行以下操作

suppressPackageStartupMessages({
    library(ggplot2)
    library(tidyr)
})

【讨论】:

    【解决方案3】:

    我会选择:

    packages <- c("tidyverse", "qdap", "stringr", "stringi", "textstem", "foreach", "caret", "xgboost", "quanteda")
    
    zzz<-lapply(packages, function(xxx) suppressMessages(require(xxx, character.only = TRUE,quietly=TRUE,warn.conflicts = FALSE)))
    

    【讨论】:

      【解决方案4】:

      要摆脱包消息,您可以使用suppressPackageStartupMessages() 或使用quietly = T 选项:

      packages <- c("tidyverse","stringr")
      lapply(packages, function(x)require(x, character.only = T, quietly = T))
      

      要摆脱列表输入,您可以将整个内容包装在 invisible() 函数中:

      packages <- c("tidyverse","stringr")
      invisible(lapply(packages, function(x) require(x, character.only = T, quietly = T)))
      

      【讨论】:

      • 非常感谢,从来不知道隐形。无缘无故地接受了 amonk 的回答
      猜你喜欢
      • 1970-01-01
      • 2017-07-06
      • 2014-06-02
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2013-08-06
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多