R에서 한 명령의 출력 억제
하나의 명령 (이 경우 apply
함수) 의 출력을 억제하려고합니다 .
사용하지 않고 이것을 할 수 sink()
있습니까? 아래에 설명 된 솔루션을 찾았지만 가능하면 한 줄로이 작업을 수행하고 싶습니다.
를 사용하지 않고이 작업을 수행하려는 이유는 명확하지 sink
않지만 invisible()
함수 에서 모든 명령을 래핑 할 수 있으며 출력을 억제합니다. 예를 들면 :
1:10 # prints output
invisible(1:10) # hides it
그렇지 않으면 항상 세미콜론과 괄호를 사용하여 항목을 한 줄로 결합 할 수 있습니다.
{ sink("/dev/null"); ....; sink(); }
capture.output()
기능을 사용하십시오 . 일회성처럼 작동하며 sink()
와 달리 invisible()
인쇄 메시지 이상을 억제 할 수 있습니다. /dev/null
UNIX 또는 NUL
Windows 에서 파일 인수를로 설정하십시오 . 예를 들어 Dirk의 메모를 고려하면 다음과 같습니다.
> invisible(cat("Hi\n"))
Hi
> capture.output( cat("Hi\n"), file='NUL')
>
R은 할당되지 않은 표현식의 출력 만 자동으로 인쇄하므로의 결과를 apply
변수에 할당 하면 인쇄되지 않습니다.
아래와 같이 'capture.output'을 사용할 수 있습니다. 이렇게하면 나중에 데이터를 사용할 수 있습니다.
log <- capture.output({
test <- CensReg.SMN(cc=cc,x=x,y=y, nu=NULL, type="Normal")
})
test$betas
다음 함수는 원하는 것을 정확하게 수행해야합니다.
hush=function(code){
sink("NUL") # use /dev/null in UNIX
tmp = code
sink()
return(tmp)
}
예를 들어 여기에 함수가 있습니다.
foo=function(){
print("BAR!")
return(42)
}
달리는
x = hush(foo())
x에 42를 할당하지만 "BAR!"를 인쇄하지 않습니다. STDOUT에
UNIX OS에서는 "NUL"을 "/ dev / null"로 바꿔야합니다.
invisible(cat("Dataset: ", dataset, fill = TRUE))
invisible(cat(" Width: " ,width, fill = TRUE))
invisible(cat(" Bin1: " ,bin1interval, fill = TRUE))
invisible(cat(" Bin2: " ,bin2interval, fill = TRUE))
invisible(cat(" Bin3: " ,bin3interval, fill = TRUE))
줄 끝이나 다음 줄에 NULL없이 출력을 생성합니다.
Dataset: 17 19 26 29 31 32 34 45 47 51 52 59 60 62 63
Width: 15.33333
Bin1: 17 32.33333
Bin2: 32.33333 47.66667
Bin3: 47.66667 63
참고URL : https://stackoverflow.com/questions/2723034/suppress-one-commands-output-in-r
'your programing' 카테고리의 다른 글
ASP.Net Core 2.1의 ID : AccountController 사용자 지정 (0) | 2020.10.16 |
---|---|
이것에 대한 boost :: shared_ptr 얻기 (0) | 2020.10.16 |
문자열이 유효한 Windows 디렉터리 (폴더) 경로인지 확인 (0) | 2020.10.16 |
소프트 키보드의 ActionBar SearchView 자동 축소 닫기 (0) | 2020.10.16 |
HTML (0) | 2020.10.15 |