빨간색코딩

R언어 개요 (장단점, 동작원리, 최적화 R코드) 본문

R

R언어 개요 (장단점, 동작원리, 최적화 R코드)

빨간색소년 2017. 9. 13. 17:26

참조문서 : An Introduction to R

1. R언어란?

통계 계산과 그래픽을 위한 프로그래밍 언어이다. 뉴질랜드의 로버트 잰틀맨과 로스 이하카가 개발하였다. 1993년 처음으로 공개되었다. R은 GPL 하에 배포되는 S 프로그래밍 언어의 구현으로 GNU S라고도 한다.

장점

  • 오픈소스, 무료 소프트웨어
  • 포괄적인 통계플랫폼 : 다양한 라이브러리, 다양한 분석기법, 정형/비정형
  • 시각화 기능으로 수학 기호를 포함할 수 있는 출판물 수준의 그래프를 제공

단점

  • 통계 최적화를 위해 성능을 희생했다
  • 인터프리터언어로서 R코드가 실행될때, 변경될 때마다 다시 해석하므로 비교적 느리다.

2. 동작원리

R은 싱글스레드이므로 1개의 CPU코어만 사용한다. 멀티코어를 활용하려면 병렬프로그래밍 기법이 필요하다.

R은 R코드를 메인메모리에 올려둔다. R해석기는 R코드를 기계코드로 변환하고 기계코드로 CPU가 처리한다.

인메모리에서 처리하기 때문에 빠르지만, 최대 데이터 크기는 사용가능한 RAM의 크기에 따라 달라진다.

3. 기본 명령어

3-1. 도움말

  • 시작페이지 : help.start()
  • ?? + 찾고자하는 문자열
  • help.search("찾고자하는 문자열")
  • help(함수 등등)

3-2. 종료

q()

3-3. 명령 history

history() 또는 ↑ 화살표를 이용한다.

3-4. 배치실행

R언어도 배치파일을 만들어 실행할 수 있다. 파일명.r 로 R코드를 작성한 후 콘솔에서 source("파일명.r") 을 실행한다.

4. 특징

  • 다른 언어들은 여러 데이터를 처리할 때 반복문을 사용하여 읽어들여 처리하지만, R언어는 전체 데이터를 한번에 다루는 벡터 연산을 주로 사용한다.
  • R언어의 객체들은 immutable이다. 객체를 수정하면 사실은 새로운 객체를 생성하는 것이다.

5. 좋은 성능의 R코드를 위하여

  • 벡터화 : R 연산자가 벡터를 인수로 취하여 여러 값을 신속하게 처리
  • 내장 함수 사용 : 내장함수(C, C++같은걸로 컴파일된 언어로 구현)를 이용하는게 더 빠름
  • 메모리 사전 할당
  • 더 간단한 데이터 구조의 사용 : 예를들어 data.frame 이 편의성이나 유연성에서 더 좋긴하지만 행렬연산에서는 matrix가 더 빠르다.
  • 대용량 데이터에서 잦은 조회를 위해 해시 테이블 사용
  • CRAN에서 빠른 대체 패키지 찾기
  • 적은 메모리 사용 : copy-on-modification를 이용(y<-x 는 y를 단순히 동일한 메모리블록을 가르키게 한다)


Comments