2017-10-09 2 views
4

RMarkdown에서 인쇄 문을 숨기는 방법이 있습니까? 알고리즘의 학습 동작에 대한 진행 상황을 R 콘솔에 인쇄하는 함수를 작성했습니다. 다음은 그 예이다 : RMarkdown에서RMarkdown의 인쇄 문을 숨기기

f <- function() { 
    print("Some printing") 
    return(1) 
} 

나는

```{r, eval = TRUE, results = "show"} 
res = f() 
print(res) 
``` 

이것은 RMarkdown 출력 파일에 "일부 인쇄"1을 추가 있습니다. "일부 인쇄"를 억제하는 방법이 있지만 기능의 출력을 유지 하시겠습니까? (여기 1)? 경고, 오류 및 메시지에는 옵션이 있지만 print 문에는 아무 것도 찾을 수 없습니다.

+0

[This SO answer] (https://stackoverflow.com/a/39289337/496488) 도움이 될 수 있습니다. – eipi10

답변

1

대신 print의 함수에 message를 사용하는 경우 메시지

```{r} 
f <- function() { 
    message("Some printing") # change this line 
    return(1) 
} 

res <- f()  
print(res) # original prints both 
``` 
#> Some printing 
#> [1] 1 

명시 적으로 suppressMessages으로 억제 할 수 있습니다 :

```{r} 
res <- suppressMessages(f()) 
print(res) 
``` 
#> [1] 1 

또는 message=FALSE 청크 옵션을 통해 :

```{r, message=FALSE} 
res <- f() 
print(res) 
``` 
#> [1] 1 

남 이러한 종류의 사용을 위해 디자인 된 에세이. 당신이 정말로 print 유지하려면, 당신은 (어색하다) 부분, 또는 캡처하고 다른 변수에 결과를 저장하는 동안 메시지를 저장하기 위해 capture.output을 사용할 수

```{r} 
f <- function() { 
    print("Some printing") 
    return(1) 
} 

trash <- capture.output(res <- f()) 
print(res) 
``` 
#> [1] 1 

을 ...하지만 여전히 꽤 어색합니다.

+0

'message'를 사용하는 것이 아마도 가장 쉬운 해결책 일 것입니다. 개인적으로 R 콘솔에 인쇄되는 붉은 색은 싫지만. 오류처럼 보입니다 ... – needRhelp

+0

니트 결과에 비슷한 강조 표시를 설정하지 않았다면 더 좋은 강조 표시가 좋을 것입니다. 모두 회색 일 것입니다. 그러나 메시지와 오류의 차이점은 언제나 볼 수 있습니다. 왜냐하면 'print'결과 앞에 항상 색인이 붙는 것처럼 오류 앞에 "Error"가 있기 때문입니다. 'print ('foo'); cat ('foo \ n'); 메시지 ('foo'); stop ('foo')'. 인쇄를 구분하기 위해 사용자 정의 후크를 작성할 수는 있지만 인쇄하기가 쉽지 않습니다. – alistaire

관련 문제