본문 바로가기
IT 탐구생활

R과 파이썬, 나에게 맞는 분석 툴은?

by 데이널 2024. 5. 20.

여러분은 "R을 사용해야 할까, Python을 사용해야 할까 고민한 적 없나요?“ 데이터 분석 공부를 시작하는 사람이라면 누가나 가지게 되는 생각인데요. 저도 처음엔 R로 시작했다가 파이썬도 배우게 된 case인데요. 과거에는 이 부분에 대해 명확한 생각이 없어 둘다하게 되었던 것 같습니다. 

R과 파이썬 모두 개발해 본 입장에서 언어는 툴에 불가합니다. 로직을 설계하고 구현할 수 있다면 금방 적응합니다. 그렇다고 두개다 병행해 공부하는 것은 비효율적이라 생각해요. 그 이유는 하나를 자신의 무기로 연마해 놓으면 다른 언어로 빠르게 적응해 나갈 수 있기 때문이죠.
 

 
R과 파이썬은 아빠가 좋아? 엄마가 좋아? 에 대한 선택이 아닙니다. 둘 다 훌륭한 툴(tool)이지만 자신의 역할에 따라 어떤 것이 유리한지 명확하게 결정됐습니다. 이 글에서는 ‘R vs Python의 특징’을 살펴보고 어떤 사람에게 적합한 언어인지 알아보겠습니다. 


R은 통계학자를 위한 도구

R은 뉴질랜드 오클랜드 대학교의 Ross Ihaka와 Robert Gentleman가 개발한 분석 툴입니다. 통계분석을 위해 통계학자가 만들었죠. 그러면 R의 많은 특징 중에 중요한 3가지만 골라 이야기해 보려고 합니다. 
 

데이터분석-언어-R
데이터분석 언어 R

1. 통계 분석

통계학자가 만든 만큼 R은 포괄적인 통계 도구입니다. 선형 및 비선형 모델링, 고전적인 통계 테스트, 시계열 분석, 분류, 클러스터링 등을 포함한 머신러닝의 광범위한 통계 패키지를 활용할 수 있습니다. 
 
또 복잡한 통계 알고리즘의 구현을 지원합니다. 파이썬에 비해 더 많은 통계 기술이 있다고 생각하면 됩니다. 예를 들어, 최대 우도 추정, 베이지안 추론 및 기타 고급 방법을 위한 기능을 제공합니다.

2. 시각화

R의 그래픽 패키지는 기본적인 플로팅 및 차트로 표현 할 수 있습니다. 가장 많이 쓰는 ggplot2는 Grammar of Graphics를 기반인데요. 이 패키지는 최소한의 코드로 나름 만족스러운 시각화를 만드는 줍니다.

추가적으로 Shiny 및 Plotly와 같은 패키지를 사용하면 대화형 웹 애플리케이션 및 시각화를 생성할 수 있습니다. 여러 패키지를 통해 분석가는 손쉽게 데이터를 시각화할 수 있습니다. 

3. 광범위한 커뮤니티 및 패키지

dplyr 및 tidyr는 데이터 조작 및 정리를 위한 패키지입니다. 데이터를 더 쉽게 필터링, 정렬 및 변환할 수 있도록 해줍니다. R은 상대적으로 연구분야에 풍부한 패키지와 커뮤니티 생태계가 장점으로 꼽는데요.
 
예를 들어, CRAN이라는 R 커뮤니티에서 개발한 수천 개의 패키지를 호스팅하는데요. 생물정보학에서 계량경제학에 이르기까지 다양한 분야에서 R의 기능을 확장할 수 있죠. 또 바이오컨덕터는 처리량이 높은 게놈 데이터를 분석하고 이해하기 위한 R기반 오픈소스 프로젝트 입니다.


Python은 실용적인 툴

반면에 Python은 다재다능한 툴니다. 네덜란드 프로그래머 Guido van Rossum는 코드 가독성과 단순성을 목표로 했습니다. 쉽게 배우고 사용할 수 있는 언어를 설계하는 언어를 원했죠. 데이터 분석 도구만을 위해 만든 것이 아니란 이야기죠. 그러면 파이썬의 주요 특징 3가지를 알이볼까요. 
 

데이터분석-언어-Python
데이터분석 언어 Python

1. 구축을 위한 언어

R이 연구에 적합한 언어 였다면 파이썬은 웹 개발부터 기계 학습까지 구축할 수 있습니다. Python 코드를 실행하고, 데이터를 시각화하고, 분석 프로세스를 단일 문서에 문서화할 수 있는 대화형 웹 기반 환경인 Jupyter notebook이라는 강력한 툴이 있죠. 프로그램은 링크에서 다운받을 수 있습니다. 

PyCharm, Spyder, Visual Studio Code와 같은 IDE, 통합 개발 환경을 제공합니다. 디버깅, 코드 완성, 버전 제어 통합과 같은 기능을 포함하고 있어서 Python 개발을 지원합니다. 많은 분석가들이 Jupyter notebook과 VS CODE를 사용하고 있습니다. 
 

2. 라이브러리

Pandas, NumPy, scikit-learn 등 라이브러리가 강력합니다. Scikit-Learn은 머신러닝을 위한 포괄적인 라이브러리로 데이터 마이닝 및 데이터 분석을 위한 간단하고 효율적인 도구입니다.
 
뿐만 아니라 TensorFlow 및 Keras 등 딥러닝용 라이브러리로 신경망 구현을 지원합니다. PyTorch는 유연성과 사용 편의성을 제공하며 특히 연구 개발에 선호되는 또 다른 딥 러닝 라이브러리입니다.
 

3. 통합 및 확장성

다른 기술 및 플랫폼과 쉽게 통합되므로 End-to-End 프로젝트에 적합합니다. 웹 서비스 및 API와 쉽게 통합되어 데이터 수집 및 다른 소프트웨어와의 상호 작용이 용이합니다.
 
또 Python은 SQLAlchemy 및 PyMongo와 같은 라이브러리를 통해 SQL 및 NoSQL 데이터베이스를 포함한 다양한 데이터베이스에 대한 연결을 지원합니다. 한마디로 확장성이 좋다는 이야기입니다. 
 

누구에게 적합할까요?

1. R은 통계학자 및 대학 연구원에 적합

R은 통계 분석에 맞춰져 있습니다. 유명 논문들도 R로 연구한 논문들이 많습니다. 그래서 고급 통계 분석에 적합한 언어 입니다.


2. Python은 개발자 및 머신러닝 구축에 적합

실제 머신러닝을 구축할 경우에는 Python이 최선의 선택입니다. 여러 기술 플랫폼에 적용이 가능하기 때문에 연구된 기술을 적용할 때는 파이썬으로 개발하게 됩니다. 종종 R에만 있는 통계 패키지가 있으나, 대부분 파이썬에도 대체 가능한 패키지가 존재합니다. 
 

 

마무리

결국 분석에 가장 좋은 툴은 여러분의 역할에 따라 다릅니다. 분석 프로젝트에서 데이터 분석 결과와 인사이트를 제공만 하고 종료하는 경우도 있습니다. 이런 경우는 R로 수행해도 충분합니다.

하지만 시스템에 구축까지 한다면 파이썬을 사용해야 합니다. 여러분이 만약 대학 연구원이 아니라 프로젝트를 수행을 목표로 한다면 파이썬을 사용해 보기를 추천합니다.