Отключить сообщения при загрузке пакета

У меня есть пакет в R (ROCR), который мне нужно загрузить в моей среде R. После загрузки пакета печатается набор сообщений. Обычно это нормально, но поскольку выходные данные моего R-сценария используются для дальнейшего анализа, я хочу полностью отключить все эти выходные данные. Как я могу это сделать? Кроме того, я бы предпочел сделать это без необходимости изменять ROCR, чтобы будущие пользователи этого скрипта тоже не делали этого.

Пока что

  • sink() здесь не работает - перенаправление как stdout, так и std err в /dev/null ничего не делает для меня.
  • Неудивительно, что options(warnings=-1) тоже ничего не делает, так как это не предупреждения, как таковые, которые печатаются.

Есть мысли?

72 голоса | спросил learner 30 FriEurope/Moscow2011-12-30T20:35:12+04:00Europe/Moscow12bEurope/MoscowFri, 30 Dec 2011 20:35:12 +0400 2011, 20:35:12

4 ответа


0

Просто используйте suppressMessages() вокруг своего library() вызов:

[email protected]:~$ R

R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)
[...]

R> suppressMessages(library(ROCR))
R>                                               # silently loaded
R> search() 
 [1] ".GlobalEnv"         "package:ROCR"         # it's really there      
 [3] "package:gplots"     "package:KernSmooth"
 [5] "package:grid"       "package:caTools"   
 [7] "package:bitops"     "package:gdata"     
 [9] "package:gtools"     "package:stats"     
[11] "package:graphics"   "package:grDevices" 
[13] "package:utils"      "package:datasets"  
[15] "package:methods"    "Autoloads"         
[17] "package:base"      
R> 
ответил Dirk Eddelbuettel 30 FriEurope/Moscow2011-12-30T20:48:51+04:00Europe/Moscow12bEurope/MoscowFri, 30 Dec 2011 20:48:51 +0400 2011, 20:48:51
0

Ответ Дирка подавляет все сообщения и не относится к сообщениям, генерируемым при загрузке пакетов.

Решение:

suppressPackageStartupMessages(library(THE_PACKAGE_NAME))

Чуть более подробное объяснение можно найти здесь

ответил Mehrad Mahmoudian 16 J000000Monday18 2018, 10:32:41
0

library(ROCR, quietly = TRUE) может быть более элегантным вариантом.

ответил Andrei Martins 5 Maypm18 2018, 23:53:46
0

Добавление quietly = T, как показано ниже, решит проблему:

suppressWarnings(suppressMessages(library("dplyr", quietly = T)))

В случае нескольких пакетов вы можете использовать:

## specify the package names
PKGs <- c("affy","gcrma","readxl","ggplot2","lattice" )

и они используют как указано ниже:

lapply(PKGs, library, character.only = TRUE ,quietly = T)
ответил Yousef 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 25 Sep 2018 09:46:02 +0300 2018, 09:46:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132