Select a specific programming language

 

문제정의

현재, 과 동기들과 함께 월간 데이콘 4 코로나 데이터 시각화 경진대회에 참여를 했다. 기존에 알고 있던 언어인 파이썬으로 데이터 분석을 할 수 있었다. 하지만, 주제가 시각화인 만큼, 시각적인 효과를 잘 나타낼 수 있는 그래프나 도표들을 이용하고 싶었다. 파이썬으로 matplotlib이나 seaborn등의 라이브러리를 이용해서 어느 정도 표현을 하는 것은 가능했으나, 내가 원하는 만큼의 시각화 효과를 줄 수 없는 것이 아쉬웠다.

 

시각화를 위해서 많이 쓰이는 언어들

 

Python :
matplotlib, seaborn
외에도 folium으로 시각화를 하는데에 많이 사용한다. 
하지만, 시각화 툴을 가지고 있는 정도이지, 시각화를 전문적으로 다루지는 않는다. 

R :
시각화와 데이터 분석에 강점이 있는 언어이다.

SQL :
관계형 데이터베이스 관리 시스템으로 시각화에도 사용되기는 하지만,
주로 데이터를 다루는데에 많이 사용한다.

SPSS, SAS :
통계적 분석과 데이터 마이닝 등에 사용되는 통계 분석 프로그램 모음이다.
데이터를 다루고, 시각화를 하는 데에 유용한 것들이 많이 있기는 하지만,
유료 소프트웨어이기 때문에, 학생인 나에게는 부담이 된다.

 


R이란?

R이라는 언어는 ‘S’라는 언어의 문법과 통계처리 부분을 참고 했고, 데이터 처리 부분은 스킴으로부터 영향을 받았다.

1993년 뉴질랜드 오클랜드 대학교의 로버트 젠틀맨(Robert Gentleman)과 로스 이하카(Ross Ihaka)에 의해 개발된 통계 및 그래프 작업을 위한 인터프리터 프로그래밍 언어이다. 현재는 R 코어 팀이 개발하고 있다.

 

R의 목적

기존의 언어들보다 데이터 분석, 통계학, 그리고 시각화를 하기 위한 더 좋고 친근한 방법을 만들어보는 것

 

R의 철학

다른 언어는 단순히 도구나 기술적인 부분들에 대해 개선만 이루어질 뿐이다.
하지만, R은 데이터 분석의 도구를 넘어서서 계획되고 일관된 시스템을 만드는 것을 철학으로 하고 있다.


R의 장점

 

1. 포괄적인 통계 플랫폼

다양한 라이브러리, 다양한 분석 기법 사용 가능
정형, 비정형 데이터 이용이 가능하다.

2. 멀티 OS지원

윈도우, 유닉스, 리눅스, OS등 다양한 플랫폼에서 작동가능

3. 시각화할 수 있는 능력

수학 그래픽을 포함, 고품질의 그래프를 만들 수 있는 정적 그래프
(다이나믹하고 인터랙티브한 그래픽도 추가 패키지를 통해 제공된다.)
대표적인 시각화 패키지 -> ggplot2, ggvis, googleVis, rCharts

4. 생태계

R은 정말 풍부한 최첨단 패키지와 활발한 커뮤니티를 가지고 있다.
쉽게 최근의 테크닉과 기능에 접근할 수 있다. 초보자도 쉽게 배울 수 있다.

5. 통계 소프트웨어에서 R과의 연동

SPSS, SAS(유료 통계 소프트웨어)등 통계 소프트웨어에서 R과의 연동을 통해 새로운 분석방법을 제공 + 가장 최신의 통계 및 데이터 마이닝 알고리즘을 많이 보유하고 있다.

 

R의 단점

 

1. 메모리 관리

R은 데이터를 물리적 메모리에 저장하기 때문에,
매우 큰 데이터 집합을 사용한 작업을 수행할 때 문제가 발생할 수 있다.

2. 느린 속도

통계학자들이 좀 더 쉽게 연구하기 위해 만든 언어.
컴퓨터를 효율적으로 활용하는 방법은 깊게 고려하지 X
하지만, 단점을 상쇄해 줄 패키지(pqR, renjin, FastR, Riposte )가 있다.
또한, apply, purrr 등의 패키지를 이용하여 속도를 올릴 수 있다.

3. 인터프리터 언어

R코드가 실행될 때, 변경될 때마다 다시 해석하므로 비교적 느리다.


버전별 특징은 무엇인가?

현재는 R version 3.6.3까지 나온 상태이다.
(4.0.0 Prerelease version2020.03.24.에 배포)

 

R version 1 -> R version 2 (2004 .11.15)

기존 version 1에서의 단점이었던 코드를 실행하는데 걸리는 시간을 40%까지 줄이고, 메모리의 사용량을 줄였다.
R 구분 분석기가 이스케이프 처리 없이 여러 줄 문자열을 허용한다. (이전 방법은 작동)
help() -> 현재 사용 가능한 문서에 대한 정보를 리턴, 특정 주제에 대해 여러개의 일치 항목 리턴

 

R version 2 -> R version 3(2013.04.03)

64비트 플랫폼에서 벡터를 확장해서 긴 벡터들이 오류가 일어나지 않도록 했다.
64비트에서 OS에 의해 제한되던 메모리를 할당받을 수 있도록 했다.

 

 

버전이 올라가면서 R이 지향하는 바가 있는가?


version 1에서 2 업데이트:

R의 단점인 시간과 성능을 높이는 것에 집중을 했다. 또한, 사용자가 다른 언어에서 자료형을 처리하는 것과 비슷하게 할 수 있도록 업데이트를 했고, 도구를 사용하는 것에 어려움을 해소할 수 있는 방향으로 업데이트를 했다.

 

version 2에서 3 업데이트:

64비트 운영체제를 이용하는 사용자가 늘어남에 따라, 기존 64비트 운영체제에서 사용자들이 겪었던 불편함을 해소하고, 초점을 64비트 운영체제로 맞추는 방향으로 나아가고 있다.

 

이로써, 위에서 R의 철학과 같이 R은 단순 통계적인 도구를 사용하기 위한 언어를 넘어서기 위해 사용자의 경향에 맞춰서 업데이트를 하고 있다.

 

 

해당 언어를 사용하는 대표적인 오픈소스 소프트웨어는 무엇인가?

 

Bioconductor

처리량이 많은 게놈 데이터의 분석 및 이해를 위한 도구를 제공하는 오픈소스 소프트웨어이다. 매년 2개의 릴리스와 사용자 커뮤니티가 있다. 바이오 컨덕터는 AMI(Amazon Machine Image) Docker의 이미지로도 제공이 된다.

게놈 데이터 분석을 위한 강력한 통계 및 그래픽 방법을 제공하고 교육하는 것과 고품질의 재현 가능한 연구를 가능하게 만드는 것을 목표로 하고 있다. .

Rmetrics

R을 사용한 금융 시장 분석 및 금융 상품 평가를 위한 오픈소스 솔루션.

Omegahat

분산통계컴퓨팅. 통계응용프로그램을 위한 다양한 오픈소스 소프트웨어의 제공을 목적으로 하고 있다. 가상 기반 컴퓨터를 중심으로 새로운 방향을 함께 일할 수 있다는 아이디어에서 시작했다. 분산 또는 웹 기반 통계 소프트웨어 혹은 새로운 통계 언어 설계를 목적으로 하고 있다.

 

참조 :

https://ko.wikipedia.org/wiki/R_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)

https://www.r-project.org/about.html

https://www.codingworldnews.com/article/view/1100

 

 

 

728x90
반응형

'데이터사이언스 정보' 카테고리의 다른 글

슬기로운 개발자 되기  (0) 2020.07.17
(MJ) 데이터 구하기  (0) 2020.05.27
데이터 사이언스 관련 정보 정리  (1) 2020.02.26
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기