두 언어의 철학
R과 Python은 모두 데이터 분석에 널리 쓰이지만, 태어난 배경이 다릅니다. R은 통계학자가 만든 언어이고, Python은 범용 프로그래밍 언어입니다. 이 차이가 문법, 생태계, 커뮤니티 전반에 영향을 미칩니다.
"어떤 언어가 더 좋은가"가 아니라 "어떤 상황에 어떤 언어가 더 적합한가"를 이해하는 것이 중요합니다.
한눈에 보는 비교 테이블
| 항목 | R | Python |
|---|---|---|
| 태생 | 통계 분석용 | 범용 프로그래밍 |
| 데이터 조작 | dplyr (tidyverse) | pandas |
| 시각화 | ggplot2 | matplotlib, seaborn |
| 통계 분석 | 내장 stats + 2만여 패키지 | scipy, statsmodels |
| 머신러닝 | caret, tidymodels | scikit-learn, PyTorch |
| 웹 개발 | Shiny (대시보드) | Django, FastAPI, Streamlit |
| 인터랙티브 분석 | RStudio | Jupyter Notebook |
| 패키지 관리 | install.packages() | pip install |
| 할당 연산자 | <- (또는 =) |
= |
| 인덱싱 | 1부터 시작 | 0부터 시작 |
| 파이프 | %>% 또는 |> |
메서드 체이닝 . |
데이터 조작 비교: pandas vs dplyr
같은 작업을 pandas와 dplyr로 수행해봅니다. "2026년 서울 데이터에서 지역별 매출 합계를 구하라"는 요청입니다.
Python (pandas)
import pandas as pddf = pd.read_csv("sales.csv")result = (df[df["year"] == 2026] .groupby("region")["revenue"] .sum() .reset_index())
R (dplyr)
library(dplyr)
library(readr)
df <- read_csv("sales.csv")
result <- df %>%
filter(year == 2026) %>%
group_by(region) %>%
summarise(total = sum(revenue))
두 코드 모두 같은 결과를 냅니다. pandas는 메서드 체이닝(.)으로, dplyr은 파이프(%>%)로 연결합니다. dplyr은 동사형 함수(filter, group_by, summarise)를 사용해서 "무엇을 하는지"가 코드에 그대로 드러납니다.
시각화 비교: matplotlib vs ggplot2
Python (matplotlib + seaborn)
import matplotlib.pyplot as pltimport seaborn as snssns.scatterplot(data=mpg, x="displ", y="hwy", hue="class")plt.title("엔진 배기량과 연비")plt.xlabel("배기량")plt.ylabel("고속도로 연비")plt.show()
R (ggplot2)
library(ggplot2)
ggplot(mpg, aes(x = displ, y = hwy, color = class)) +
geom_point() +
labs(title = "엔진 배기량과 연비", x = "배기량", y = "고속도로 연비") +
theme_minimal()
ggplot2는 +로 레이어를 쌓는 방식입니다. 데이터(ggplot), 기하 객체(geom_point), 테마(theme_minimal)를 조합하는 구조가 명확합니다.
R을 선택해야 하는 경우
- 통계 분석이 핵심인 프로젝트 (논문, 연구, 임상시험)
- 출판 품질 그래프가 필요한 경우 (ggplot2의 강점)
- 재현 가능한 분석 보고서를 작성해야 하는 경우 (R Markdown, Quarto)
- CRAN의 전문 패키지가 필요한 경우 (생존 분석, 메타 분석 등)
- 대학 수업이나 연구실에서 R을 표준으로 사용하는 경우
Python을 선택해야 하는 경우
- 웹 개발, 자동화, API 서버 등 범용 프로그래밍이 필요한 경우
- 딥러닝(PyTorch, TensorFlow)이 핵심인 프로젝트
- 이미 Python 생태계에 익숙한 팀에서 일하는 경우
- 데이터 파이프라인부터 배포까지 하나의 언어로 통일하고 싶은 경우
둘 다 배우면
실무에서는 R과 Python을 함께 사용하는 경우도 많습니다. Python으로 데이터 파이프라인을 구축하고, R로 통계 분석과 시각화를 수행하는 것은 흔한 조합입니다. reticulate 패키지를 사용하면 R에서 Python 코드를 직접 호출할 수도 있습니다.
이 교재에서 R을 배운 뒤에는 두 언어의 장점을 상황에 맞게 선택할 수 있게 됩니다.