У меня есть пакет в R (ROCR), который мне нужно загрузить в среду R. После загрузки пакета печатается набор сообщений. Обычно это нормально, но поскольку результат моего сценария R используется для дальнейшего анализа, я хочу полностью отключить весь этот вывод. Как я могу это сделать? Более того, я бы предпочел сделать это вообще без изменения ROCR, чтобы будущим пользователям этого скрипта тоже не пришлось этого делать.
Уже:
sink()
здесь не работает - перенаправление stdout и std err/dev/null
на меня ничего не делает.- Неудивительно, что он
options(warnings=-1)
тоже ничего не делает, поскольку сами по себе это не предупреждения.
есть идеи?
r
message
libraries
suppress-warnings
ученик
источник
источник
Loading required package: gplots Loading required package: gtools Loading required package: gdata
- Обратите внимание, что это не позволяет мне правильно отформатировать сообщение.gplots
,gtools
иgdata
перед загрузкойROCR
.Ответы:
Просто используйте
suppressMessages()
во времяlibrary()
звонка:edd@max:~$ 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>
источник
suppressPackageStartupMessages
?suppressPackageStartupMessages
подавляет только сообщения запуска, где, как я предпочитаю,suppressMessages()
подавляет все сообщения (но не,cat()
насколько я помню). Но нельзя использовать это в стартовом тексте.Ответ Дирка подавляет все сообщения и не относится к сообщениям, которые генерируются при загрузке пакетов.
Более точное решение заданного вопроса:
suppressPackageStartupMessages(library(THE_PACKAGE_NAME))
Более подробное объяснение можно найти здесь
источник
Используйте suppressPackageStartupMessages, см. Ответ @MehradMahmoudian. Для полноты картины добавим примеры использования:
Для одной библиотеки используйте
suppressPackageStartupMessages(...)
, например:suppressPackageStartupMessages(library(ggplot2))
Для нескольких библиотек используйте
suppressPackageStartupMessages({...})
, например:suppressPackageStartupMessages({ library(ggplot2) library(ggdendro) })
источник
library(ROCR, quietly = TRUE)
может быть более элегантным вариантом.источник
library(data.table, quietly = TRUE)
Добавление,
quietly = T
как показано ниже, решит проблему:suppressWarnings(suppressMessages(library("dplyr", quietly = T)))
В случае нескольких пакетов вы можете использовать:
## specify the package names PKGs <- c("affy","gcrma","readxl","ggplot2","lattice" )
и они используют lapply, как показано ниже:
lapply(PKGs, library, character.only = TRUE ,quietly = T)
источник