R은 무엇인가? (What is R?)

 R이 무엇인지에 대해서 R 공식 사이트(http://www.r-project.org/)에서는 "R은 통계 분석과 그래픽을 위한 언어이자 환경이다(R is a language and environment for statistical computing and graphics.)"라고 정의하고 있다. 

 오픈소스 "통계 분석(statistical computing)" 툴이라고 많이 알고 있을 듯 한데, 이에 더해 "그래픽(graphics)", "언어(language)", "환경(environment)"이라는 말은 무슨 말이가 하고 관심이 갈 듯 하다. 

 특히 R 공식 사이트의 "About R" 메뉴(http://www.r-project.org/about.html)에서는 첨언하기를 "많은 사용자들이 R을 통계시스템이라고 생각지만, 우리는 R을 통계 기법이 실행되는 환경으로 생각해주기를 바란다 (Many users think of R as a statistics system. We prefer to think of it of an environment within which statistical techniques are implemented.)" 고 말하고 있다. 

 이는 R이 통계분석(statistical computing)과 그래프(graphics)가 파워풀하다는 점 외에도 "(프로그래밍) 언어(language)"이자 "(분석/개발) 환경 (environment)"로서 타 분석 툴과 차별화되는 강점이라고 말할 수 있겠다. 

 참고로 덧붙이자면, R은 오클랜드 대학교의 Robert Gentleman and Ross Ihaka에 의해서 처음 개발되었으며, 1997년 부터는 contributor들로 구성된 핵심 그룹에 의해서 소스코드가 관리되고 있고, 오픈GNU General Public License에 의거해서 무료로 사용할 수 있는 오픈소스 소프트웨어이다.  

 그럼, 자연스레 왜 R인가? R이 여타 분석 소프트웨어와 다른 점, 강점이 무엇인가로 넘어가보도록 하자. 


  • 왜 R인가? (Why R?)

 R을 통계 분석 위주로 사용해본 개인적인 경험에서 R이 좋은 점을 순서대로 적어보자면, 


1) 무료, 공짜, 0원 (free) 

오픈소스로서 무료이다 보니 원하는 사람, 기관, 기업이면 가져다가 바로 사용할 수 있다. 특히, 요즘 우리나라처럼 장기불황의 그림자에 짖눌려 기업에서 IT예산이 긴축 일변도인 상황에서는 무료라는 점이 그 어느때보다도 큰 매력으로 다가올 것 같다. 

2) 안되는게 없는 분석 기능 (packages)

R에는 2015년 현재 4천개가 넘는 통계분석 패키지가 있다. 가장 최신의 분석기법이 상용 통계분석 툴에는 없더라고 R에는 있을 가능성이 높다. 오픈소스이다 보니 전세계의 분석가, 개발자들이 R의 프로그래밍 언어이자 개발환경이라는 장점을 활용해 분석 패키지, 자동화된 사용자 정의 함수를 만들어서 배포, 공유하는 생태계가 형성되어 있으며, 이를 통해 어느 상용 툴보다도 빠르게 또 광범위하게 분석 기능이 확장되고 고도화되고 있는 것이다. 


3) 강력한 그래프 기능 (graphics)

머리로 생각할 수 있는 거의 대부분의 그래프는 R로 프로그래밍해서 그릴 수 있다. 게다가 이쁘기까지 하다. R로 그래프를 그려서 바로 신문이나 책, 인터넷 포스팅에 사용해도 전혀 손색이 없을 정도로 완성도 높게 그래프가 그려진다. 엑셀에서는 불가능한, 다양한 데이터 조건을 줘서 그래프를 그리는 것도 가능하다. 시각화가 분석에서 가지는 중요성을 생각해본다면 통계 전문가가 아니어서 다양한 분석 패키지를 쓸 일이 없는 사용자라 하더라도 R의 강력한 그래프 기능 하나만 가지고도 R을 공부하고 사용할만한 충분한 값어치가 있다고 생각한다. 블로그 포스팅 하면서 R의 시각화, 그래프 기능에 대해서 자세하고도 집요하게 소개를 해보고 싶은 욕심이 있다. 


4) 데이터 처리도 거뜬 (data manipulation)

데이터 분석을 하다보면 데이터 수집/처리/탐색적분석이 투입 공수의 60~80%를 차지하고 모델링은 상대적으로 적은 시간이 소요된다. 데이터를 떡 주무르듯이 자유자재로 다룰 수 있어야지 '데이터 분석 좀 하네'라는 소리를 들을 수 있을텐데, R은 데이터 처리에 있어서도 매우 강력한 툴이다. 


5) 객체 지향 프로그래밍 언어 (object-oriented programming language)

일회성 분석하고 끝낼게 아니라면, 시스템화/자동화를 해야하는 상황이라면, 개발자라면 '객체 지향 프로그래밍 언어'라는 말이 가지는 힘, 의미를 잘 알 것이라고 생각한다. R은 벡터 연산과 Indexing이 정말 유용하고 강력하며, 사용자 정의 함수와 루프 돌리는 프로그래밍 언어 또한 강력하고, 지도 등의 애플리케이션과도 연동이 되는데, 거기에 통계분석까지 된다. 구글이 회사차원에서 R을 사용한다고 하는데, 아마 이런 이유들 때문에 상용 통계 툴이 아니라 R을 사용하는게 아닌가 싶다. 


6) 커뮤니티, 공개/공유된 자료 (community, google.com, coursera.org, etc)

국내는 아직 R사용자가 그리 많아보이지는 않으나, 해외에서는 이미 R사용자가 꽤 많다. R 분석하다가 뭔가 잘 안된다거나 궁금한게 있다면 Google에 검색해보라. 없는거 빼고 다 있다. R 커뮤니터, 블로그도 많다. R 관련 책도 많다. Coursera와 같은 오픈 강좌에도 R 관련 교육이 있다. 


7) 쉬운 설치(Easy to install), 실습 데이터셋 (embedded data-set)

통계분석 공부 시작하는 초급자라면 클릭 몇 번으로 끝나는 쉬운 다운로드/설치, 그리고 분석을 위한 실습 데이터셋이 패키지에 기본으로 따라온다는 점이다. 분석 이론 공부 끝났는가? 그럼 10분 안에 공짜로 쉽게 설치해서 바로 데이터셋 불러다가 분석 실습할 수 있다. 빅데이터 분석한다고 하둡 클러스터 구성하고 소프트웨어 설치하다가 진빼고 지쳐 나가떨어져본 사람이라면 R 설치가 누워서 떡먹기보다 쉽다는 점에 놀라지 않을 수 없을 것이다. 거기다가 RStudio 깔아서 쓰면 사용자 UI도 꽤 좋고 편하다. (RStudio도 기업용이 아니라면 공짜.^^)


8) 소위 뜨는 분석 언어 (Hot Job Trend)

R과 Python 공부하면 좋다고 긴 말이 필요 없을 것 같다. 아래의 3개 Job Trend 그래프를 보면 뭔가 느끼는게 있을 테니...

(* 그래프 source: http://r4stats.com/articles/popularity/)



(* 그래프 source: http://r4stats.com/articles/popularity/)



(* 그래프 source: http://r4stats.com/articles/popularity/)

+ Recent posts