2017-10-11 4 views
2

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の両方をロードするための巧妙な方法がありますか?

+0

あなたはあなたを助けることがgithubの中の関数を持って次のようになります。https://gist.github.com/stevenworthington/3178163 – R18

答えて

0

私は行くだろう:パッケージメッセージを取り除くために

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))) 
+0

それは、関数の変数の名前だけ(です私はちょうどすべてのSOに関数(x)を書くことに飽きてしまった。それを自由に修正してください:) – amonk

1

、あなたは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))) 
+0

ありがとう、目に見えないことを知らなかった。タイミング以外の理由でamonkの答えが来た –

2

一つのオプションは

pacman::p_load(packages) 
ここ
+0

これを行うには、最初に '' 'library(pacman)' ''をロードしてから、他のすべてのライブラリをpacmanでロードする必要がありますか?明らかにコードの余分な行は大したものではありませんが、私が賢明であるならば、目標はすべてのパッケージをきちんと呼び出すことです。 –

+1

@DougFir私の普通の新しいコンソールでは、 'pacman :: p_load(reshape2、stringr、overflow、data.table、dplyr、tidyr、purrr)'を実行し、これらのパッケージをすべて1つのステップで読み込み、警告を表示しません。 – akrun

+0

Ah rightなぜなら、library ::はライブラリを一度呼び出すようなものなのですから? –

関連する問題