R이란 무엇인가?
R은 단 하나의 목적, 즉 데이터를 다루기 위해 만들어진 프로그래밍 언어입니다. 통계, 데이터 분석, 데이터 시각화는 라이브러리로 덧붙이는 기능이 아니라 언어 그 자체입니다. 평균, 모델, 그래프, 확률 분포가 기본으로 들어 있고, 문법은 데이터를 다루는 사람들이 실제로 던지는 질문("여기 숫자 열이 있는데, 이것에 대해 뭔가 알려 줘")에 맞춰 설계되어 있습니다.
이 집중력이 R의 성격 전부입니다. Java 같은 범용 언어는 기본 요소부터 쌓아 올리길 요구합니다. R은 t 검정을 한 줄로 건네줍니다.
R이 태어난 목적 그대로 동작하는 모습입니다. 직접 실행해 보세요.
통계 세 가지, 세 줄, import는 없습니다. c()는 값들의 벡터를 만들고 mean(), sd(), max()는 언어에 내장되어 있습니다. R을 쓰는 경험을 축소해 놓은 모습입니다.
짧은 역사
R은 1970년대 벨 연구소에서 개발된 통계 언어 S에서 자라났습니다. 1990년대 중반, 오클랜드 대학교의 두 통계학자 Ross Ihaka와 Robert Gentleman이 S의 아이디어를 무료 오픈소스로 구현하고 이를 R이라 이름 붙였습니다. 두 사람 이름의 첫 글자이자, 물려받은 S를 이어받는 이름이기도 했습니다.
R 1.0은 2000년에 공개되었고, 이후 R Core Team이 언어를 유지 관리하고 있습니다. 상업적인 조상들과 달리 무료였기 때문에 R은 대학과 연구소를 통해 먼저 퍼졌습니다. 그 학문적 DNA는 지금도 드러납니다. 통계학자가 새로운 방법론을 고안하면, 그것을 구현한 R 패키지가 대개 가장 먼저 등장합니다.
R의 활용 분야
- 통계와 데이터 분석. 핵심 용도입니다. 기술 통계, 가설 검정, 회귀, 시계열 모두 일급 시민입니다.
- 데이터 시각화. 기본 R 그래프는 함수 호출 하나면 되고,
ggplot2패키지는 어떤 언어를 통틀어도 최고의 시각화 라이브러리로 널리 평가받습니다. - 데이터 사이언스. "tidyverse" 패키지 모음(
dplyr,tidyr,readr)은 지저분한 데이터를 정리하고 재구성하는 일을 유난히 쾌적하게 만들어 줍니다. - 생물정보학. 유전체학을 위한 수천 개의 R 패키지를 모아 놓은 Bioconductor 프로젝트 덕분에, R은 생물학 상당 영역에서 기본 언어입니다.
- 학계와 연구. 경제학, 심리학, 역학, 생태학. p값이 실리는 논문을 내는 분야라면 그 대학원생들은 아마 R을 쓰고 있을 것입니다.
- 리포팅. R Markdown과 Quarto는 분석 코드를 다듬어진 보고서, 슬라이드, 대시보드로 바꿔 줍니다.
사람들이 R을 좋아하는 이유
모든 것이 벡터입니다. R의 연산은 값들의 모음 전체에 자연스럽게 한 번에 적용됩니다. prices * 1.2는 반복문 없이 모든 가격을 20% 올립니다. 이 감각이 잡히면 데이터 코드는 극적으로 짧아집니다. 벡터를 다룰 때 이 성질을 어디서나 보게 될 것입니다.
통계가 내장되어 있습니다. 난수 생성, 분포, 통계 검정, 선형 모델이 기본 R 안에 들어 있습니다. 대부분의 언어에서는 서드파티 의존성이지만, R에서는 그냥 거기 있습니다.
CRAN. Comprehensive R Archive Network에는 20,000개가 넘는 정제된 패키지가 있으며, 모든 패키지는 공개 전에 자동 검사를 통과합니다. 여러분 분야에서 쓰는 아무리 좁은 방법론이라도 누군가 이미 패키지로 만들어 두었을 것입니다.
시간을 아껴 주는 그래프. hist(scores)면 히스토그램이 나옵니다. 호출 한 번입니다. 데이터를 보고, 조정하고, 다시 보는 탐색적 분석이 바로 R이 최적화한 작업 방식입니다.
R과 Python: 솔직한 비교
모든 입문자가 던지는 질문이니, 진영 논리 없이 답해 보겠습니다.
Python은 데이터에도 매우 능한 범용 언어입니다. 데이터 작업이 더 큰 시스템의 한 부분일 때, 즉 웹 앱, 운영 환경의 ML 파이프라인, 자동화 접착제 역할일 때 강합니다. 관련 채용 자리가 더 많고, 언어 하나로 더 넓은 영역을 덮습니다.
R은 통계에 탁월한 데이터 언어입니다. 작업 자체가 분석일 때, 즉 데이터셋을 탐색하고, 통계 모델을 적합시키고, 논문 수준의 그래픽과 보고서를 만들 때 강합니다. 통계 생태계가 더 깊고, 최신 방법론이 R에 가장 먼저 도착합니다.
어느 쪽이 "더 낫다"는 것은 없습니다. 무게중심이 다를 뿐입니다. 연구, 생물통계학, 분석 비중이 큰 직무라면 R로 시작하세요. 데이터 성격이 섞인 소프트웨어 엔지니어링을 목표로 한다면 Python으로 시작하세요. 온라인 논쟁이 빼먹는 비밀은 이것입니다. 첫 언어를 익히고 나면 두 번째 언어는 훨씬 적은 노력으로 배울 수 있고, 많은 전문가들이 같은 주에 둘 다 사용합니다.
지금 바로 해 보기
시작하는 데 아무것도 설치할 필요가 없습니다. 이 페이지의 코드 블록은 실제로 실행됩니다. 조금 더 큰 예시로, 주사위 굴리기를 시뮬레이션하고 요약해 보겠습니다.
sample()은 주사위 100번 굴리기를 시뮬레이션하고, table()은 각 눈이 몇 번 나왔는지 세어 줍니다. 호출 한 번에 도수분포표가 만들어지는 셈입니다. 100을 10000으로 바꿔 다시 실행해 보세요. 평균이 확률이 말하는 대로 정확히 3.5에 가까워집니다. 질문하고, 코드를 쓰고, 답을 얻고, 조정하는 이 순환이 바로 R로 작업하는 느낌입니다.
자기 컴퓨터에서 R을 실행할 준비가 되었다면 다음 단계는 R과 RStudio 설치하기입니다.
핵심 정리
- R은 통계, 데이터 분석, 시각화를 위해 만들어진 무료 오픈소스 언어입니다.
- S에서 파생되었으며, 1990년대 중반 Ross Ihaka와 Robert Gentleman이 만들었고 R 1.0은 2000년에 나왔습니다.
- 강점은 벡터화 연산, 내장 통계 기능, CRAN의 20,000개 이상 패키지, 그리고 최고 수준의 그래프입니다.
- R과 Python은 전쟁 상대가 아닙니다. R은 통계에서 더 깊고, Python은 엔지니어링에서 더 넓으며, 많은 사람들이 둘 다 씁니다.
다음 순서는 자기 컴퓨터에 R(과 RStudio)을 설치하는 일입니다.
자주 묻는 질문
R 프로그래밍은 어디에 사용되나요?
R은 통계, 데이터 분석, 데이터 시각화에 사용됩니다. 학술 연구, 생물통계학과 생물정보학, 역학, 그리고 '이 데이터셋을 분석해서 그래프와 모델을 만들어라'가 업무의 핵심인 모든 분야에서 압도적으로 쓰입니다. 반면 앱이나 웹사이트를 만드는 용도로는 잘 쓰이지 않습니다. 애초에 그런 목적으로 설계된 언어가 아니기 때문입니다.
R은 배우기 어렵나요?
데이터 작업에 한정하면 R은 시작하기 가장 쉬운 언어 중 하나입니다. 데이터셋을 불러오고, 요약 통계를 계산하고, 그래프를 그리는 일이 각각 한 줄이면 끝납니다. 사람들이 나중에 걸려 넘어지는 부분은 R의 유연성입니다. 같은 일을 하는 방법이 여러 가지이기 때문에, 현대적인 관례를 일찍 익혀 두는 것이 큰 도움이 됩니다.
R과 Python 중 무엇을 배워야 하나요?
업무가 통계 중심(연구, 생물통계학, 계량경제학, 리포팅)이라면 R이 더 빠르게 성과를 냅니다. 데이터뿐 아니라 스크립팅, 웹 백엔드, 머신러닝 엔지니어링까지 하나의 범용 언어로 처리하고 싶다면 Python을 선택하세요. 많은 데이터 전문가들은 결국 둘 다 사용하게 되며, 개념은 서로 잘 옮겨 갑니다.
R은 무료인가요?
네. R은 GPL로 배포되는 무료 오픈소스 소프트웨어입니다. CRAN에서 비용 없이 내려받을 수 있고, CRAN에 올라온 수천 개의 패키지도 모두 무료입니다.