검수요청.png검수요청.png

R (프로그래밍 언어)

해시넷
(R에서 넘어옴)
이동: 둘러보기, 검색
R(알) 프로그래밍 언어
R(알) 프로그래밍 언어

R(알)은 통계 계산과 그래픽을 위한 프로그래밍 언어이다. 한국어로 또는 아르라고 읽는다. 1993년 뉴질랜드의 로버트 젠틀맨(Robert Gentleman)과 로스 이하카(Ross Ihaka)가 개발했다. R의 문법과 통계처리 부분은 AT&T 벨 연구소가 개발한 S를 참고하고, 데이터 처리 부분은 스킴으로부터 영향을 받아 공동 개발하여, 자유 소프트웨어로 배포하였다.

개요[편집]

R오픈소스 프로그래밍 언어 중 하나로 양이 많은 정보(데이터)를 통계적 방법으로 분석할 때 쓰인다. 클라우드 컴퓨팅과 빅 데이터(Big Data) 시대를 맞아 주목받는 추세이다. 페이스북, 트위터, 구글 등 인터넷을 주도하는 유명 기업이 고객 요구 사항을 분석할 때 R을 사용했다. 세계 R 프로그래머도 100만 명을 넘어선 것으로 알려졌다. 한국에는 제대로 안착하지 못했다. 2010년 하반기에 산업계의 관심사로 등장했으나 2년째 뚜력한 변화가 없다. 기존 통계 분석 도구(프로그램)을 대체할 만한 수요가 없어 눈에 띄는 적용 사례를 못 한 까닭이다. 엔씨소프트와 몇몇 금융기업이 시험 적용해 봤을 뿐이다. 오픈 소스 프로그램인 탓에 기술 지원과 유지보수 체계의 한계를 드러낸 것도 수요 확산에 적잖은 걸림돌이 됐다. R은 윈도, OS 및 리눅스를 포함한 UNIX 플랫폼에서 이용이 가능하다.

기본 개념[편집]

'R'의 데이터 타입은 크게 숫자형, 문자형, 논리형 이렇게 3가지로 나뉜다. 이 데이터를 몇 가지 형태로 묶어내 다룰 수 있다. 데이터가 묶이는 형태는 집합과 유사한 벡터, 행렬인 매트릭스, 표의 형태를 가진 데이터 프레임, 이런 형태를 한데 묶을 수 있는 리스트가 있다.

  • 벡터 : 동일한 타입의 데이터를 1개 이상 저장해둔 형태를 말한다. 하나의 벡터에는 하나의 타입만 들어갈 수 있다. 벡터는 'c0'이라는 함수를 이용해 만들 수 있다.
  • 매트릭스 : 행과 열을 가지는 벡터이다. 벡터와 마찬가지로 같은 유형의 타입만 적용할 수 있다. 행렬의 데이터는 [행 번호,열 번호]의 형태로 접근하며 연산 수행도 가능하다.
  • 데이터 프레임 : 흔히 접할 수 있는 자료와 유사한 형태다. 엑셀의 표처럼 생겨 행렬처럼 행과 열의 길이가 일정하지만, 열 마다 다른 형태의 자료를 담을 수 있다. 일반적으로 가장 많이 사용하는 형태의 데이터이다.
  • 리스트 : 위에서 설명한 각종 형태의 데이터를 한데 묶고자 할 때 쓴다.

특징[편집]

인터프리터 언어로 일반적으로 명령어 라인 인터프리터를 통해 실행할 수 있다. 함수를 이용한 절차지향(procedural programming)뿐만 아니라 객체 지향 프로그래밍도 지원하며, 벡터, 배열, 행렬 등의 동적 데이터형 및 고차 함수, 고수준의 내장 함수 등을 기반으로 통계에 적합한 분석 환경을 제공한다. 행렬 등의 복잡한 데이터 구조에 최적화된 고속 임베디드 함수를 내장하고 있고, 빠른 계산이 요구되는 경우 외부 프로그램과 동적 링크가 가능하다. 데이터의 그래프, 플롯(plot) 기능 등 뛰어난 시각화 기능을 제공한다. 다른 통계 소프트웨어의 입출력 포맷 및 ODBC를 통한 각종 데이터베이스에 접근이 가능하며, 웹 등의 다양한 데이터 소스와의 연결 기능을 갖추고 있다. 명령의 문법이 단순하기 때문에 교육 및 실무 현장에서 모두 이용할 수 있다. 또 기능 및 확장을 통해 쉽게 확장이 가능하며 수학 그래픽을 포함해 고품질의 그래프를 만들 수 있는 정적 그래픽이다.

사용시 유용한 패키지[편집]

'R'은 패키지 설치를 통해 기능확장을 구현할 수 있다. 기본적으로 제공하는 기능이라 해도, 패키지를 활용하면 더 효율적인 경우도 있다.

디플라이아르[편집]

디플라이아르의 함수들은 데이터 조작에 효율적이다. 데이터를 정제하고 원하는 대로 조합하고, 연산을 수행할 수 있다.

주요 함수[편집]

  • select 함수 : 임의의 열을 선택하며, 열의 순서도 바꿀 수 있다.
  • filter 함수: 조건을 지정해서 원하는 행만 출력할 수 있다. 연산자를 통해 'or 연산'을 수행할 수 있다. 'and 연산'은 그냥 쉼표로 이어 붙이면 된다.
  • mutate 함수 : 새로운 열을 생성하는 함수이다. 함수 내에서 생성한 열도 바로 연산으로 사용할 수 있다. 함수와 연산을 이용해 데이터를 가공해 새로 추가하기에 좋다. 차이나 변화량을 알고 싶을 때 연산을 이용해 새로운 열을 추가할 수 있다.
  • group_by 함수 : 연산에 사용되는 그룹을 묶어주는 함수로 실제로 묶어주는 것은 아니다. 소속이나 범주 등도 묶을 수 있다.
  • summary 함수 : 데이터를 요약하며, 그룹이 지정된 경우는 그룹별 요약을 출력한다. 지정되지 않은 경우는 1행짜리 결과물이 출력된다.
  • arrange 함수 : 지정한 열을 기준으로 데이터를 정렬한다. 기본은 오름차순이며 'desc()'를 입력하면 내림차순으로 정렬한다.
  • top_n 함수 : 'top_n(n = 출력할 개수, wt = 지정변수)'를 쓰면 지정한 변수를 기준으로 상위 n개까지 출력한다. 그룹이 지정돼 있으면 그룹별로 n개씩 출력한다.

지지플롯2[편집]

'R'에서도 기본적인 그래프를 지원해 간편하게 그릴 수는 있지만 대충 어떤 형태인지 알아보기 적합한 수준이다. 제대로 분석하기 위해서는 그래프에 특화된 다양한 형태의 그래프를 지원하는 '지지플롯2' 패키지를 이용할 필요가 있다. 관련 치트시트를 보면 어떤 상황에서 어떤 그래프를 활용할 수 있는지 확인할 수 있다. 사용할 변수가 하나일 때와 둘, 셋일 때 사용하면 좋은 그래프가 구분되어 있다.

'지지플롯2'는 하나 이상의 레이어가 구성되면 그래프를 출력한다. 레이어 이외에 그래프를 구성하는 요소는 데이터의 값이 그래프의 시각적 요소에 적용되는 과정을 조절하는'Scale', 좌표를 결정하는 시각적 요소가 어떻게 연결되는지 결정하는 'Coordinate System', 데이터를 여러 개의 그래프로 표시할 수 있게 하는 'Facet', 그래프의 시각적 속성이 어떻게 데이터와 연관되는지 안내하는 'Guide'가 있다. 하지만 구체적으로 각 요소를 조절할 게 아니라면 이런 식으로는 잘 사용하지 않는다. 실제로 사용할 때는 자주 사용하는 요소를 묶어서 미리 만든 함수들을 활용한다. 미리 공통적인 요소를 'ggplot()' 함수 안에 설정하고 레이어를 더하는 식으로 사용한다.

R Studio[편집]

'R Studio'는 완벽한 기능의 데이터 복구 유틸리티 세트이고, Windows OS 및 Mac OS Linus 용 두 버전 모두가 포함되어 있다. 하드디스크 드라이브(HDD), SDD(solid State Devices), 플래시 메모리 및 기타 외부와 내부 데이터 스토리지 장치에서 데이터를 복구할 수 있다. 데이터 복구 전문가용이기는 하지만, IT 전문가와 일반 컴퓨터 사용자도 손실된 파일 복구를 직접 수행할 수 있다. 'R Studio'의 커널에 기반한 간소화된 프로그램인 'R Undelete'는 비전문가 사용자를 위해 개발되고 출시되었다.

기본 기능[편집]

'R Studio'는 한국어를 포함한 다국어 인터페이스와 도움말을 지원하고 다양한 파일 시스템을 지원한다. 또 지역화된 파일 이름 및 폴더 이름을 지원하며 압축되고 암호화된 NTFS 파일을 지원한다. 논리적 디스크 관리자를 지원하고 사용자 정의 파일 형식 및 가장 널리 사용되는 파일 형식에 대해 사전 정의된 세트인 파일 시그니처를 지원한다.

콘텐츠[편집]

'R Studio'는 데이터 복구 프로그램뿐만 아니라 디스크 데이터 편집기, 고급 RAID 복구 모듈, 표준 및 사용자 정의 RAID 수준 둘 다가 지원돼 RAID 매개 변수를 자동으로 찾을 수 있다. 디스크 이미징 및 복제 모듈, 디스크 S.M.A.R.T. 매개 변수 모니터링 모듈, 네트워크 데이터 복구 모듈 시스템을 지원한다. 부팅이 불가능한 컴퓨터에서 데이터 복구를 위한 긴급 버전의 'R Studio'로 설치된 OS에 관계없이 사용자의 컴퓨터가 지원하는 이동식 미디어에서 실행할 수 있다.

참고 자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 R (프로그래밍 언어) 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.