我想同时在oner和supress suppressPackageStartupMessages中加载包.
第一个链接中的答案使用了lapply:
packages <- c("tidyverse", "qdap", "stringr", "stringi", "textstem", "foreach", "caret", "xgboost", "quanteda")
lapply(packages, require, character.only = T)
Run Code Online (Sandbox Code Playgroud)
这会向控制台返回一个难看的列表:
[[1]]
[1] TRUE
[[2]]
[1] TRUE
[[3]]
[1] TRUE
[[4]]
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
另外,我还想摆脱那些在加载时发送到控制台的消息,例如
> library(tidyverse)
Loading tidyverse: ggplot2
Loading tidyverse: dplyr
Conflicts with tidy packages --------------------------------------------------------------------
accumulate(): purrr, foreach
filter(): dplyr, stats
lag(): dplyr, stats
when(): purrr, foreach
Run Code Online (Sandbox Code Playgroud)
是否有一个聪明,简短的方法来加载包的向量和suppressPackageStartupMessages?
Lun*_*una 12
你可以执行以下操作
suppressPackageStartupMessages({
library(ggplot2)
library(tidyr)
})
Run Code Online (Sandbox Code Playgroud)
我会选择:
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)))
Run Code Online (Sandbox Code Playgroud)
要摆脱包消息,您可以使用suppressPackageStartupMessages()或者可以使用以下quietly = T选项:
packages <- c("tidyverse","stringr")
lapply(packages, function(x)require(x, character.only = T, quietly = T))
Run Code Online (Sandbox Code Playgroud)
要摆脱列表输入,您可以将整个内容包装在函数中invisible():
packages <- c("tidyverse","stringr")
invisible(lapply(packages, function(x) require(x, character.only = T, quietly = T)))
Run Code Online (Sandbox Code Playgroud)
一种选择是
pacman::p_load(packages)
Run Code Online (Sandbox Code Playgroud)