패키지를 로드할 때 메시지 사용 안 함
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
'programing' 카테고리의 다른 글
Maria docker passWordCharacterEncoding 문제 (0) | 2023.07.03 |
---|---|
VBA에 주석 블록 구문이 포함되어 있습니까? (0) | 2023.07.03 |
"gdb가 코드화되었는지 확인하십시오 - 태스크게이트(8) 참조" - 홈브루 코드가 서명된 gdb를 설치하려면 어떻게 해야 합니까? (0) | 2023.07.03 |
내장된 몽구스 채우기 (0) | 2023.07.03 |
MongoDB: 로케일:: facet::_S_create_c_local 이름이 잘못되었습니다. (0) | 2023.06.28 |