본문 바로가기

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 Oracle Connection 지난번 R DB Connection 글에서 R에서 RDBMS에 Connection하는 방법을 알아보았다.지난 글에서는 MySQL를 접속했었는데 Oracle접속하는 방법도 간단하다. ojdbc.jar파일을 다운로드 받은 후 특정폴더에 복사한다.여기서는 지난 MySQL과 마찬가지로 /usr/share/java 폴더로 복사였다. Oracle connection 소스는 아래와 같다. 자세한 사항은 지난 R DB Connection을 참고하기 바란다.library(DBI) library(RJDBC) library(rJava) drv 더보기
R svn commit history 시각화 이번에는 사내에서 진행중인 한 프로젝트의 svn commit history를 이용한 간단한 시각화 방법이다. svn commit history 가져오기Eclipse에서 해당 프로젝트의 Show History를 가져와 정보를 파일(txt)로 저장한다. Eclipse Generate ChangeLog 저장된 파일은 아래와 같이 commint순번, 아이디, 날짜, 수정된 파일 리스트로 되어있다.r799 | y2kpooh | 2014-02-21 10:54:35 KST| Changed paths:D /trunk/~~~.xml r798 | y2kpooh | 2014-02-21 10:53:21 KST| Changed paths:D /trunk/~~~.jspD /trunk/~~~.xml R data 핸들링우선 작업에 .. 더보기
R boxplot을 이용한 출근시간 분석 및 시각화 사내 근태관리 시스템에서 출퇴근 데이터를 이용하여 사내직원의 출퇴근 성향을 파악해보려 한다.이를 위하여 boxplot을 사용해보고자 한다. boxplot이란?최대값, 최소값, 중앙값, 사분편차를 사용하여 자료의 측정값들이 어떤 모양으로 분포되어 있으며, 극단값들은 어떠한지 등을 쉽게 알 수 있도록 하는 그림이다. 자료들이 비대칭으로 분포되어 있을 경우에는 상자그림을 그려 극단값의 개수, 비대칭 여부 등을 파악할 수 있으므로 측정값들의 중심위치와 산포도의 척도로 사용할 수 있다.[네이버 지식백과] 상자그림 [box plot, box and whisker plot] boxplot 해석을 돕기 위한 그림(출처) boxplot분석우선 데이터 전처리 작업을 진행하였다. DB에 저장된 직원별 근태정보에서 출퇴근시간.. 더보기
R data.table 1. data.table? R에는 data handling을 위한 여러가지 패키지들이 있다. 그중 data.table패키지는 가장 많이 사용하는 패키지라 할 수 있다. data.table은 큰 데이터를 탐색, 연산, 병합 하는데 아주 유용하다.data.table의 빠른 속도의 원리는 특정 column을 key값으로 색인을 지정한 후 데이터를 처리한다.따라서 기존의 방식(data.frame)보다 월등히 빠른 속도를 보여준다.현재 data.table 패키지 버전은 1.8.10까지 나와 있으며 R버전 (≥ 2.12.0) 이상부터 지원한다. 2. data.table vs data.frame 여기서 사용하는 데이터 샘플은 titanic data로 여기서 다운로드 받을 수 있다. 가. Data loadlibrary.. 더보기
R 상위버전 설치 Ubuntu를 사용하는 유저라면 R을 아래와 같이 설치할 수 있다. $ sudo apt-get install r-base 설치후 아래와 같은 명령어로 R version을 확인해보면 아마도? 메이비? 2.14 version이 설치되어 있을 것이오!!R.Version()물론 해당 버전으로 R을 사용하는데 크게 문제는 없다. 하지만... 말이오... 일부 Package의 경우 하위 R버전을 지원하지 않는단 말이오!!! 말이오~~~ ^^ 2.15 이상이거나 3.0 이상부터 지원하는 Package도 꽤 많다오... 그래서 우린 뛰어난 똑똑이들이 만들어놓은 Package를 R version의 문제로 사용 못하게 되는 일이 없도록 R 상위버전을 설치할 필요가 있다... 그래서 방법을 알려주겠소... sources.l.. 더보기
R DB Connection R에서 일반적인 분석 방법은 아래와 같다.1. DB에서 분석할 데이터를 가져와 csv, txt와 같은 파일 형태로 생성한다.2. R에서는 각종 read 함수를 이용하여 생성한 파일을 메모리에 올려 분석 작업을 진행한다. 이 방법의 단점은 R에서 분석하기 위해서는 DB에서 데이터를 가공해서 파일로 전달할때 까지 기다려야 한다는 것이다.분석가와 DBA간의 커뮤니케이션에 문제가 있을 경우 위 1,2번의 작업을 몇 차례나 더 해야 할 수도 있다. 그래서 이번에는 R에서 직접 RDBMS를 Conncetion하는 방법을 알아보고자 한다.이 방법의 장점은 SQL을 조금만 알면 분석가는 DBA에게 데이터를 요청할 필요도 없으며 SQL로 쉽게 데이터를 선 정제 후 R에서 분석가능하다. 여기서 부터 아래 작업은 Ubunt.. 더보기
R 상관분석(Correlation) 시각화 상관분석이란? 상관분석(Correlation Analysis)은 확률론과 통계학에서 두 변수간에 어떤 선형적 관계를 갖고 있는 지를 분석하는 방법이다. 두변수는 서로 독립적인 관계로부터 서로 상관된 관계일 수 있으며 이때 두 변수간의 관계의 강도를 상관관계(Correlation, Correlation coefficient)라 한다. 상관분석에서는 상관관계의 정도를 나타내는 단위로 모상관계수 ρ를 사용한다. 상관관계의 정도를 파악하는 상관계수(Correlation coefficient)는 두 변수간의 연관된 정도를 나타낼 뿐 인과관계를 설명하는 것은 아니다. 두 변수간에 원인과 결과의 인과관계가 있는지에 대한 것은 회귀분석을 통해 인과관계의 방향, 정도와 수학적 모델을 확인해 볼 수 있다. 위키백과 참조 .. 더보기