오픈소스 소프트웨어 R
R 프로그래밍 언어(줄여서 R)는 통계 계산과 그래픽을 위한 프로그래밍 언어이자 소프트웨어 환경이다. 뉴질랜드 오클랜드 대학의 로버트 젠틀맨(Robert Gentleman)과 로스 이하카(Ross Ihaka)에 의해 시작되어 현재는 R 코어 팀이 개발하고 있다. R은 GPL 하에 배포되는 S 프로그래밍 언어의 구현으로 GNU S라고도 한다. R은 통계 소프트웨어 개발과 자료 분석에 널리 사용되고 있으며, 패키지 개발이 용이하여 통계학자들 사이에서 통계 소프트웨어 개발에 많이 쓰이고 있다.
R의 문법과 통계처리 부분은 AT&T 벨 연구소가 개발했던 S를 참고했고, 데이터 처리부분은 스킴으로부터 영향을 받았다.
R은 다양한 통계 기법과 수치 해석 기법을 지원한다. R은 사용자가 제작한 패키지를 추가하여 기능을 확장할 수 있다. 핵심적인 패키지는 R과 함께 설치되며, CRAN(the Comprehensive R Archive Network)을 통해 2016년 현재 10,300개 이상의 패키지를 내려 받을 수 있다.
R의 또다른 강점은 그래픽 기능으로 수학 기호를 포함할 수 있는 출판물 수준의 그래프를 제공하는 것이다.
R은 통계 계산과 소프트웨어 개발을 위한 환경이 필요한 통계학자와 연구자들 뿐만 아니라, 행렬 계산을 위한 도구로서도 사용될 수 있으며 이 부분에서 GNU Octave나 MATLAB에 견줄 만한 결과를 보여준다.
R은 윈도, 맥 OS 및 리눅스를 포함한 UNIX 플랫폼에서 이용 가능하다.
R의 단점은 보안과 메모리 관리
R에는 장점이 많지만 단점도 있다. 애덤스는 “현재 R의 가장 큰 숙제는 메모리 관리, 속도, 효율성”이라며 “각 분야에서 많은 발전이 이루어졌고 지금도 진행 중이다. 또한 다른 언어를 사용하다 R을 접한 사람들은 R이 까다롭다고 느낄 수 있다”고 말했다.
펭은 R의 기본적인 특성은 1960년대에 만들어진 프로그래밍 언어를 연상시킨다면서 “최초 설계된 시점을 감안하면 R은 오래된 언어”라고 말했다. R 언어는 그 설계 특성상 매우 큰 데이터 집합을 사용한 작업을 수행할 때 문제가 발생할 수 있다. 데이터를 물리적 메모리에 저장해야 하기 때문이다. 다만 펭은 컴퓨터에 장착되는 메모리 용량이 증가함에 따라 이 문제도 과거만큼 심각하진 않다고 덧붙였다.
펭은 R 언어에는 보안과 같은 기능이 내장되어 있지 않다고 지적했다. 또한 R은 웹 브라우저에 내장할 수 없으므로 웹 또는 인터넷 앱에는 사용할 수 없다. 과거에는 웹 보안의 부재로 인해 R을 백엔드 서버로 사용하여 계산을 수행하는 것도 기본적으로는 불가능했다. 다만 아마존 웹 서비스 클라우드 플랫폼에서 가상 컨테이너를 사용하는 등의 기술이 개발되면서 보안 문제는 어느 정도 개선됐다.
펭은 오랫동안 R에는 양방향 참가 활동이 많지 않았다면서 여전히 자바스크립트와 같은 언어를 사용해 이 간극을 메워야 한다고 말했다. 분석 작업은 R로 수행하더라도 분석 결과의 프레젠테이션은 자바스크립트와 같은 다른 언어로 해야 한다는 뜻이다.
통계분석 소프트웨어로 R을 선택한 이유
검증: 북미,유럽,호주등대학정규통계수업에사용되 는 소프트웨어이다. (Minnesota, Kentucky, Montana, ...
무료: 자유롭게 배포할 수 있어 사용에 제한이 없다.
R의 특징
융통성(Versatility): R은 프로그래밍 언어이기 때문에 패키 지가 미리 프로그램 해 놓은 절차에 제한 받지 않는다. 새 로운 방법을 프로그램 하기가 상대적으로 쉽다.
대화식(Interactivity): 데이터 분석은 원래 대화식이다. 몇 몇 오래된 통계패키지들은 배치 프로세싱 패러다임이 아 직까지 사용법에 남아있다. R은 한번에 하나의 프로세스를 수행한다. 분석하는 동안 보이는 것에 기초해 변경이 가능 하다.
호환성(Compatibility): 상업용 소프트웨어 S-Plus와 거의 호환됨.
평판(Popularity): SAS가 일반영역에서 널리 통용되는 통계 패키지라면 R 이나 S는 통계학 연구자에게 가장 인기 있 고 Finance Bioinformatics에 특히 활용도가 높다.
R은 고급 프로그래머 전용이 아니다
애덤스와 펭, 두 사람 모두 R을 접근하기 쉬운 언어로 평가한다. 애덤스는 “나는 컴퓨터 과학을 전공하지 않았고 프로그래머가 될 생각도 없었다. 프로그래밍 기초에 대한 지식이 있으면 R을 처음 이용하는데 도움이 되겠지만 필수 요건은 아니다”라고 말했다.
애덤스는 “더 극단적으로 말하면 R이 프로그래머용이라는 말도 정확하지 않다. R은 프로그래밍에 대한 적성에 관계없이 데이터 지향적인 문제를 해결하려는 사람에게 적합한 언어”라고 말했다.
데이터 분석가들이 가장 선호하는 언어
R은 통계 분석을 위해 개발한 언어이자, 소프트웨어 도구입니다. 원래 Bell 연구소에서 만든 ‘S’라는 프로그래밍 언어가 있었는데, 로버트 젠틀맨(Robert Gentleman)과 로스 이하카(Ross Ihaka)라는 사람이 S를 참고해서 누구나 자유롭게 사용할 수 있도록 오픈 소스로 구현한 것이 R입니다(*눈치채셨겠지만 R이라는 이름은 S라는 언어에서 비롯되었고 S라는 이름은 Statistics의 S를 뜻합니다).
처리속도
인터프리터 언어라는 이유로 처리속도가 낮다는 평가를 받는 경우가 많다. 그러나 실제로는 S의 상용판인 S-PLUS보다 많은 경우 속도가 빠를 뿐만 아니라, 범용행렬계 언어의 표준과도 같은 MATLAB과 그 파생어인 GNU Octave, Scilab보다도 종합적으로 빠르다는 평가가 있다
R의 장단점 및 특징
R의 강력한 패키지 생태계와 도표 작성의 이점
패키지 생태계도 R의 장점 중 하나다. 애덤스는 “패키지 생태계의 광활함은 단연 R의 가장 큰 장점 중 하나다. 어떤 통계 기법을 사용하든 그에 맞는 R 패키지가 이미 나와 있다고 보면 된다”고 말했다.
펭은 “통계학자를 위해 내장된 기능이 아주 많다”면서, “R은 확장 가능하고 개발자에게 데이터 분석을 위한 자체 도구와 방법을 만들 수 있는 풍부한 기능을 제공한다. 시간이 지나면서 생명과학이나 인문학 등 다른 분야에서 R 언어로 유입된 사람도 많아졌다”고 말했다.
펭은 허락을 구할 필요 없이 원하는 대로 확장할 수 있다는 점도 강조했다. 실제로 펭은 몇 년 전 R의 사용 조건이 큰 도움이 됐다고 회상하며 “처음 R이 나왔을 때 가장 큰 장점은 자유 소프트웨어라는 점이었다. 소스 코드를 비롯한 모든 요소를 볼 수 있었다”고 말했다.
애덤스는 R의 모든 그래픽 및 도표 기능에 대해 “타의 추종을 불허한다”면서 “데이터 조작과 플롯을 위한 dplyr, ggplot2 패키지 덕분에 작업이 더 편해졌다”고 말했다.
애덤스는 기계 학습 분야에서 R의 가장 큰 장점은 학계와의 강력한 연계에 있다면서 “이 분야의 연구를 새로 시작한다면 처음부터 R 패키지를 사용하는 경우가 대부분이다. 이 부분에 있어 R이 가장 앞서 있다. 캐럿(caret) 패키지는 통합 API를 통해 R로 기계 학습을 실행할 수 있는 매우 실용적인 방법을 제공한다”고 말했다. 펭 역시 인기 있는 여러 기계 학습 알고리즘이 R로 구현된다고 말했다.