본문 바로가기

R

R grep을 이용한 데이터프레임 필터링 R의 주요 데이터포맷인 데이터프레임(data.frame)을 사용하다보면 필터링을 해야 되는 경우가 많다. 필터링하는게 어렵지는 않지만 데이터프레임의 데이터가 많을 수록 성능이슈가 발생한다. 데이터가 클수록 필터링 속도는 현저하기 느려진다. 물론 이러한 성능이슈를 도와주는 R의 여러 패키지가 존재하며 대표적으로 data.table 패키지가 있다. 해당 패키지는 RDBMS와 유사하게 데이터를 인덱싱하여 보다 빠른 필터링 및 그외 여러기능을 제공한다. (더 자세히 알고 싶다면 여기를 참고) 여기서는 data.table과 같은 패키지를 사용하지 않고 보다 빠르게 필터링 하는 방법을 알아보고자 한다. 우선 기본적인 R에서 데이터프레임을 필터링하는 방법으로는 아래 2가지가 대표적(?)이다. df1 더보기
R을 이용한 이상치 분석 이상치(Outlier)라고 하면 특정 데이터 변수의 분포에서 비정상적으로 벗어난 값을 뜻한다.예를 들면 어떤 학생이 신체검사를 했다고 치자 A학생은 몸무게와 키가 각각 100kg, 150cm나왔다.이 A학생은 일반적으로 생각했을때 키에 비해 몸무게가 많은 것으로 보인다. (여기서는 몸무게와 키는 상관관계가 높은 것으로 간주한다.)그럼 이 A학생은 속한 학년 반 또는 또래 아이들에 비해 비정상(여기서 이상치)이 맞을까? 위 질문에 대한 이상치 분석을 한번 해보자.이상치 분석을 위한 모델 데이터는 A학생이 포함된 반의 학생들의 몸무게, 키 데이터이며 변수는 몸무게, 키로만 한정지어 분석해보고자 한다. 모델에 대한 종속변수는 몸무게이며 설명변수는 키가 된다. 우선 데이터를 한번 만들어보자.(실제 데이터가 없으.. 더보기
R on Hadoop and Amazon EMR Amazon EMR은 R을 지원한다. AMI Versions 3.0.0 이상부터는 Hadoop과 함께 R 3.0.2버전이 함께 Includes되어 설치된다. 현재 R최신버전은 3.1.1이지만 R 3.0.2버전이면 거의 최신버전이라고 할 수 있다. Amazon 서비스에서 R을 지원하기 때문에 EMR을 이용하여 R Script를 실행하는 방법을 알아보고자 한다. 우선 고려해야 될 사항을 나열해보면 아래와 같다. 첫째 AMI를 통해 설치되는 R버전이 내가 사용하고자 하는 R package에서 지원하는 버전대인지? 둘째 EMR Hadoop Cluster 세팅 시 R은 설치 되지만 R Package는 설치되지 않기 때문에 설치가 가는한지? 우선 첫번째 문제부터 살펴보면 R 3.0.2버전이면 거의 왠만한 R pac.. 더보기
R PDF생성 시 한글폰트 깨짐 문제 ggplot2로 차트를 생성 후 PDF를 저장하니 차트내 한글폰트가 깨지는 현상이 발생하였다.(png나 svg등 타 파일형식은 문제 없이 동작했다.) 물론 한글폰트 문제라 생각하고 접근하였지만 당최 폰트도 설치하고 폰트설정도 해봤지만 문제는 해결되지 않았다. > chart ggsave(file="/home/y2kpooh/save/test.pdf", plot=chart) 위와 같이 실행하여 pdf를 생성하게 되면 한글폰트에 대하여 warning가 뜨게 된다.warning()을 실행하여 메세지를 확인하면 한글폰트 생성 시 에러가 발생하여 위 그림 처럼 한글폰트가 깨지게 된다. 위 증상을 해결하기 위하여 device에서 pdf생성을 담당(?)하는 pdf(grDevices)를 확인해보니 폰트지정이 가능하더라.그.. 더보기
R을 이용한 중심극한정리 1. 중심극한정리? 중심극한정리(Central Limit Theorem, CLT)는 동일한 확률분포를 가진 독립 확률 변수 n개의 평균값은 n이 적당히 크다면 정규분포에 가까워진다는 정리이다. 수학자 피에르시몽 라플라스는 1774년에서 1786년 사이의 일련의 논문에서 이러한 정리의 발견과 증명을 시도하였다. 확률과 통계학에서 큰 의미가 있으며 실용적인 면에서도 품질관리, 식스 시그마에서 많이 이용된다.(위키 발췌) 2. R로 증명하기 데이터 샘플을 만들어보면...1~6의 수를 가진 주사위를 5번씩 던지며 그 작업을 500번 반복하는 데이터를 R에서 제공하는 sample 함수를 통해서 만들어보면 아래와 같다. sample 더보기
[JRI] R Parsing data.frame to JSON R에서 제공하는 DataSet을 이용하여 JSON형태로 변환해보자. R에는 다양한 DataSet(data.frame 형태)이 내장되어있다.DataSet 목록은 아래의 명령어로 확인 가능하다. > library(help=datasets) iris DataSet의 일부를 head 메소드로 확인해보면 아래와 같다.> head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 여러 D.. 더보기
JRI Java R Interface 1. R 이란 R 프로그래밍 언어(줄여서 R)는 통계 계산과 그래픽을 위한 프로그래밍 언어이자 소프트웨어 환경이다. 뉴질랜드 오클랜드 대학의 로스 이하카와 로버트 젠틀맨에 의해 시작되어 현재는 R 코어 팀이 개발하고 있다. R은 GPL 하에 배포되는 S 프로그래밍 언어의 구현으로 GNU S라고도 한다. R은 통계 소프트웨어 개발과 자료 분석에 널리 사용되고 있으며, 패키지 개발이 용이하여 통계학자들 사이에서 통계 소프트웨어 개발에 많이 쓰이고 있다.(위키백과 발췌) 2. R 설치 및 환경 세팅 2.1 R 설치R은 공개 소프트웨어로 http://www.r-project.org/ 에서 다운로드 받아 설치가 가능하다.Ubuntu 사용하고 있다면 apt-get으로 아래와 같이 설치하면 된다. y2kpooh@po.. 더보기