최근에 패키지를 rOpenSci에 제출했으며 사용자 측 콘솔 출력에 cat()
대신에 message()
을 사용하는 것을 선호합니다. 패키지로 전환 할 때, 렌더링 된 비 네트의 형식이 변경되는 것을 눈치 채지 못했습니다. 다음 R Markdown 보고서에서 문제를 재현했습니다.R Markdown/knitr 보고서에서 message()를 사용하여 출력을 잘랐다
---
title: "MWE"
author: "Will Landau"
date: "11/20/2017"
output: html_document
---
```{r testcat}
for(x in LETTERS[1:3]){
cat(x, "\n")
}
```
```{r testmessage}
for(x in LETTERS[1:3]){
message(x)
}
```
```{r testmessage2}
for(x in LETTERS[1:3]){
message(x, "\n", appendLF = FALSE)
}
```
첫 번째 코드 청크의 경우 원하는 출력을 얻습니다. 모든 세 줄은 단일 회색 상자에 함께 표시됩니다.
## A
## B
## C
두 번째 및 세 번째 청크의 경우 각 줄마다 별도의 회색 상자가 지정됩니다.
## A
.
## B
.
## C
어떻게이 같은 knitr
출력을 자르고없이 message()
를 계속 사용합니까?
다른 메모에서 이미 패키지가 CRAN에 있었습니까? 아니면 CRAN 이전에 ropensci에 제출 했습니까? – amrrs
대신에'message'를 사용하는 특별한 이유가 있습니까? 기본적으로'message'는 stderr로 출력됩니다. 그래서 저는 여러분이이 문제를보고 있다고 생각합니다 - 이것은 에러가 그들 자신의 라인을 얻는 것과 같은 이유입니다. 'message' 도움말 페이지에서 : "기본 핸들러는 메시지를 stderr() 연결로 보냅니다." – Dason
[rOpenSci가 선호하기 때문에] (https://github.com/ropensci/onboarding/blob/master/packaging_guide.md#-console-messages) 지금은'message()'를 사용하고 있습니다. 사용자가'cat()'보다 억제 할 수 있습니다. 패키지 자체는 거의 1 년 동안 CRAN에 있었으며 현재 rOpenSci로 옮겨 가고 있습니다. – landau