Development Tip

패키지로드시 메시지 비활성화

yourdevel 2020. 10. 7. 21:21
반응형

패키지로드시 메시지 비활성화


내 R 환경에로드해야하는 R (ROCR)에 패키지가 있습니다. 패키지를로드하면 메시지 세트가 인쇄됩니다. 이것은 일반적으로 괜찮지 만 내 R 스크립트의 출력이 추가 분석에 사용되고 있기 때문에이 모든 출력을 완전히 비활성화하고 싶습니다. 어떻게하나요? 또한 ROCR을 전혀 수정하지 않고 수행하는 것을 선호하므로이 스크립트의 향후 사용자도 그렇게 할 필요가 없습니다.

지금까지:

  • sink()여기서 작동하지 않습니다-stdout과 std err을 모두 리디렉션하여 /dev/null아무것도하지 않습니다.
  • 당연히 options(warnings=-1)경고 자체가 인쇄되지 않기 때문에 아무것도하지 않습니다.

이견있는 사람?


통화 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> 

Dirk의 대답 은 모든 메시지를 억제하며 패키지를로드하는 동안 생성되는 메시지에만 국한되지 않습니다.

질문에 대한 더 정확한 해결책은 다음과 같습니다.

suppressPackageStartupMessages(library(THE_PACKAGE_NAME))

좀 더 자세한 설명은 여기 에서 찾을 수 있습니다.


library(ROCR, 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)

참고 URL : https://stackoverflow.com/questions/8681688/disable-messages-upon-loading-a-package

반응형