R에서 가장 많이 사용되는 코딩 스타일 가이드 2가지


이 두가지 가이드를 바탕으로 최적화하여 정리해 보면 다음과 같다.

  1. R 스크립트 파일명은 .R 확장자로 끝낸다.
    • 파일명은 중간에 대시(-)나 밑줄(_)을 사용해도 좋다
    • 파일명은 의미 있어야 한다.
    • 여러개의 파일을 순차적으로 실행할 경우에는 숫자를 앞에 붙있다. (예: 0-download.R, 1-parse.R, 2-explorer.R)
  2. 변수명은 variable_name, 함수명은 function_name, 상수는 CONSTANT_NAME 형태를 사용한다.
    • variable.name, variableName, FunctionNAme, ConstantNAme 등은 사용하지 않는다.
    • 변수명은 명사, 함수명은 동사로 한다. 짧지만 의미 있는 이름을 사용한다. (예: calculate_avg_chicks)
    • 가능한 한 기존 함수나 변수명과 중복되는 이름을 피한다.
  3. 한 줄은 최대 80글자로 제한한다.
  4. 들여쓰기는 두 스페이스, 탭은 사용하지 않는다.
  5. 띄어쓰기
    • 이항 연산자(binary operators) =, +, -, % 등은 양쪽에 한 칸씩 비운다. 예외로, 함수 호출 시 옵션 지정에 사용하는 =는 빈칸 없이 사용해도 좋다.
    • 콤마 다음에는 항상 한 칸을 띄어쓴다. (예: x[1, ]).
    • 함수 호출 이외에 괄호 앞은 한 칸을 띄어쓴다 (예: if (debug)).
    • 이항 연산자 ::과 :는 빈칸이 필요 없다 (x = 1:10, dplyr::minute).
  6. 중괄호({})는 같은 줄에서 열고 별도의 줄에서 닫는다.
  7. else 절은 중괄호로 감싸준다.
  8. 할당은 <- 를 사용한다.
  9. 세미콜론(;)을 사용하지 않는다.
  10. 코드 레이아웃과 순서
    1. 저작권(copyright) 정보
    2. 저자 정보
    3. 파일 정보: 코드의 목적, 입력, 출력
    4. source()와 library() 문
    5. 함수 정의
      • 함수가 많을 때는 별로의 스크립트, 예를 들어 my_func.R을 사용해도 좋다. source(“my_func.R”)로 읽어 들이다.
    6. 실행문들
    7. 유닛 테스트(unit test)를 한다면 별도의 파일 originalfilename_test.R을 사용한다.
  11. 주석은 # 다음에 한 칸을 띄고 ㅆ시작한다. 인라인(inline) 주석은 # 전에 두 칸을 띈다.
  12. 함수 정의와 호출: 함수 정의는 디폴트가 없는 인수들을 먼저 저의하고, 디폴트가 있는 인수를 나중에 정의한다.
  13. 함수 주석: 함수를 정의하는 줄 바로 밑에 주석을 단다. 한 문장으로 함수를 기술하고, Args: 밑에 함수의 각 인자와 변수명을 기술하고, Returns: 밑에 리턴값을 기술한다.
  14. R의 attach() 함수는 사용하지 않는다.
  15. 함수 에러 시에는 stop()을 호출한다.
  16. (고급) R의 객체지향 방법은 S3와 S4가 있는데, 가능한 한 S3를 사용한다. 절대 S3와 S4를 혼용하지 않는다.

깃 버전 관리 가이드