R 표준 출력(및 표준 오류 출력)에 색을 지정합니다.

R을 Ubuntu나 WSL로 사용하면 출력 부분에 색이 없어 입력 부분과 구별하기 어려울 수 있습니다.insight::print_color 를 사용하면 표준 출력에 색을 지정할 수 있습니다.
※단, Widndows로 표준의 Rgui에서는 색이 나오지 않습니다. RStudio라면 색을 낼 수 있습니다.

insight::print_color 정보


insight::print_color 는 패키지 insight는 이전부터 소개하고 있던 easystats계의 패키지의 하나로, 주로 모델의 데이터의 취득등의 유틸리티 부분을 담당하고 있습니다.
그 일환으로, insight::print_color 는 easystats 계열의 패키지의 출력 결과를 보기 쉽게 하기 위해서 사용되고 있습니다. 통계량 등을 콘솔에 출력하는 경우가 많은 패키지 특유의 궁리입니다.
  • 설치
  • install.packages("insight")
    
  • 기본 사용법

  • 기본적으로
    insight::print_color(text = <表示したいテキスト>, color = <表示したい色>)
    

    처럼 사용합니다. color 는 "red", "yellow", "green", "blue", "violet", "cyan", "grey"를 지정할 수 있습니다.
    다만, 텍스트의 마지막에 \n 를 붙이지 않으면 개행되지 않고 보기 어려워지므로 주의가 필요합니다.


    자작 함수의 출력에 색칠



    자작 함수의 경우, 표시하는 텍스트 부분에 insight::print_color 를 적용하는 것으로, 표준 출력, 표준 에러 출력 양쪽 모두에 색을 붙일 수가 있습니다.
    check <- function(x) {
        if (is.na(x)) warning(insight::print_color("`x` is NA.\n", "red"))
        else if (!is.numeric(x)) warning(insight::print_color("`x` is not numeric.\n", "violet"))
        else if (x > 0) cat(insight::print_color("`x` is positive.\n", "green"))
        else if (x == 0) cat(insight::print_color("`x` is zero.\n", "grey"))
        else if (x < 0) cat(insight::print_color("`x` is netgative.\n", "blue"))
    }
    



    기존 함수의 출력에 색상 지정



    기존의 함수에 관해서는, 이하의 궁리를 하는 것으로 표준 출력에 색을 칠 수 있습니다. 표준 에러 출력(에러, 경고, 메세지)에 관해서는 잘 색을 붙일 수 없었습니다.
  • 색조 함수 설정

  • 다음과 같은 색채 함수를 정의해 둡니다. capture.output 에서 출력을 문자열로 가져오고 paste0 로 줄 바꿈을 추가 한 다음 insight::print_color를 적용합니다.
    dye_output <- function(x, color) insight::print_color(paste0(capture.output(x), "\n"), color = color)
    
    # パイプを使う場合
    dye_output <- function(x, color) x %>% capture.output(.) %>% paste0(., "\n") %>% insight::print_color(., color = color)
    
  • 실행 예

  • 위의 함수를 사용하면 다음과 같이 출력에 색을 칠 수 있습니다.


    또, {}() 를 이하와 같이 짜 하면(자), 결과를 오브젝트에 격납하는 것과 동시에 표준 출력에 색을 붙일 수가 있습니다.


    magrittr의 파이프를 사용할 수 있는 경우에는 함수 뒤에 다음과 같이 덧붙이면 끝나므로 매우 보기 쉽고 사용하기 쉽습니다.


    무언가에 도움이 될 수 있을까?



    개인적으로는 출력에 색이 붙는 것은 어쩐지 기쁩니다만, 그런 상용하는 것은 없을지도 모릅니다. 그냥 뭔가에 도움이 될 수 있을까?
    콘솔의 출력을 보다 이해하고 있는 분이면 보다 유연한 사용법을 할 수 있을지도 모르기 때문에, 꼭 시험해 보세요.

    참고로 한 사이트



    · easystats/insight
    · Package ‘insight’
    · RjpWiki R 출력 기록
    R에서 경고, 오류 메시지 등을 출력하는 방법 표준 출력 ※단, Warning이나 Message는 표준 에러 출력에 출력되고 있다고 생각한다.
    · R 콘솔 명령, 결과, 경고/메시지/오류를 결합한 R 세션 로그 파일을 만드는 방법

    좋은 웹페이지 즐겨찾기