programing

패키지를 로드할 때 메시지 사용 안 함

subpage 2023. 7. 3. 22:53
반응형

패키지를 로드할 때 메시지 사용 안 함

R(ROCR) 환경에서 로드해야 하는 패키지가 있습니다.패키지를 로드하면 메시지 세트가 인쇄됩니다.일반적으로 이것은 괜찮지만, R 스크립트의 출력이 추가 분석에 사용되고 있기 때문에 이 출력을 모두 사용하지 않도록 설정하고 싶습니다.그걸 어떻게 하는 거죠?또한 ROCR을 수정할 필요 없이 이 스크립트를 수행하여 향후 사용자도 ROCR을 수정할 필요가 없습니다.

지금까지:

  • sink()여기서는 작동하지 않습니다 - stdout 및 stderr 모두로 리디렉션/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"))

좀 더 자세한 설명은 여기에서 확인할 수 있습니다.

메흐라드 마흐무디안의 답을 보세요.완전성을 위해 여기에 사용 예를 추가합니다.

하나의 라이브러리에 대해 사용suppressPackageStartupMessages(...)예:

suppressPackageStartupMessages(library(ggplot2))

여러 라이브러리의 경우 사용suppressPackageStartupMessages({...})예:

suppressPackageStartupMessages({
    library(ggplot2)
    library(ggdendro)
})

참고 항목:
패키지 시작 메시지 표시 안 함

library(ROCR, quietly = TRUE)좀 더 우아한 선택일 수도 있습니다.

만약 당신이 for 루프와 함께 패키지를 로드한다면, 당신은 라이브러리를 개별적으로 로드할 때 메시지를 억제하는 대신에 아래와 같이 전체 루프를 침묵시켜야 합니다.

requiredPackages = c('plyr','dplyr','data.table')
suppressMessages(
 for (p in requiredPackages) {
  if (!require(p, character.only = TRUE)){
   install.packages(p)
  }
  library(p, character.only = 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

반응형