# 나쁜 예: 반복되는 코드
BIGNcnt_sex <- adsl_saf %>% group_by(TRT01A) %>% count()
BIGNcnt_age <- adsl_saf %>% group_by(TRT01A) %>% count() # 불필요한 반복
# 좋은 예: 한 번 계산한 결과를 재사용하거나 함수화
big_n <- adsl_saf %>% group_by(TRT01A) %>% count(name = "N")코드 스타일 (Code Style)
코드 스타일은 동료가 내 코드를 읽고 이해하는 데 도움을 줄 뿐만 아니라(QC 과정에 필수적), 미래의 나 자신이 과거에 무엇을 했는지 기억하는 데에도 큰 도움이 됩니다. 프로그래밍 표준과 좋은 관행을 익혀 제3자도 이해할 수 있는 코드를 작성하는 법을 배웁니다.
핵심 요약 (TL;DR)
- 일관된 스타일 유지:
{tidyverse}스타일 가이드를 권장합니다. RStudio에는 이를 쉽게 구현할 수 있는 도구들이 있습니다. - 환경 정보 기록:
session_info()등을 사용하여 작업 당시의 R 버전 및 패키지 정보를 반드시 남기세요. - 문서화: 별도의 패키지를 만드는 것이 아니라면,
{rmarkdown}이나Quarto를 사용하여 코드와 설명을 함께 작성하고 HTML로 렌더링하세요. - 중복 배제 (DRY): 동일한 작업을 반복하지 마세요. 함수를 작성하고 문서화하여 테스트하세요.
1. 들여쓰기 정리 (단축키: Ctrl + I)
코드의 가독성을 높이는 가장 쉬운 방법은 들여쓰기를 맞추는 것입니다. RStudio에서 정리가 필요한 코드를 선택한 뒤 Ctrl + I를 눌러보세요.
2. 코드 다시 포맷하기 (단축키: Ctrl + Shift + A)
단순 들여쓰기를 넘어, 줄 바꿈이나 연산자 앞뒤 공백 등을 tidyverse 스타일에 맞춰 자동으로 정리해 줍니다.
3. 일관성 있는 스타일의 중요성
어떤 스타일 가이드를 선택하든 일관성이 가장 중요합니다.
- 할당 연산자:
=보다는<-사용을 권장합니다. - 명명 규칙:
snake_case(예:big_n_cnt) 또는camelCase중 하나를 골라 일관되게 사용하세요. - 공백 사용:
<-주위와 쉼표 뒤에는 항상 공백을 넣으세요. - 줄 바꿈:
- 파이프 연산자(
%>%또는|>) 뒤에는 줄 바꿈을 하세요. - ggplot2의 레이어(
+) 뒤에도 줄 바꿈을 하세요. - 인수가 많은 함수는 여러 줄로 나누어 작성하세요.
- 파이프 연산자(
4. 주석 (Comments) 점검
주석은 코드가 무엇(WHAT)을 하는지보다, 왜(WHY) 그렇게 작성했는지에 대한 맥락을 설명해야 합니다. 코드를 수정했다면 주석도 그에 맞게 업데이트되었는지 확인하세요.
5. 불필요한 라이브러리 로드 금지
사용하지 않는 패키지를 로드하면 충돌이 발생하거나 메모리를 낭비할 수 있습니다. 분석이 끝난 뒤에는 실제로 사용한 패키지만 남겨두고 정리하세요.
6. 중복 배제 (DRY: Don’t Repeat Yourself)
비슷한 작업을 수행하는 코드 뭉치가 세 번 이상 반복된다면, 함수로 만들 시점입니다. 복사-붙여넣기는 오타나 에러의 원인이 되기 쉽습니다.