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@pooh:~$ sudo apt - get install r - base |
설치 후 터미널 창에서 R 명령어를 이용하면 R Console창으로 실행가능하다.
y2kpooh@pooh:~$ R R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows" Copyright (C) 2012 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R은 자유 소프트웨어이며 완전하게 무보증입니다. 일정한 조건에 따라 자유롭게 이것을 재배포 할 수 있습니다. 배포조건에 대한 상세설명은 'license()' 혹은 'licence()' 라고 입력해주세요 R는 많은 기여자들에 의한 공동프로젝트입니다. 더 자세한것에 대해서는 'contributors()'라고 입력해 주십시오. 또한, R 혹은 R 패키지를 인용하는 형식에 대해서는 알고싶으시다면 'citation()'라고 입력해주십시오 'demo()' 라고 입력하면, 몇가지 데모를 볼 수 있고, 'help()' 를 입력하게 되면 온라인 도움말을 볼 수 있습니다. 'help.start()' 를 입력하면 HTML 브라우저에 의한 도움말이 보여집니다. 'q()'라고 입력하면 R를 종료합니다 > |
간략한 R 명령어 사용 예
(R언어의 대하여 자세한게 알고 싶다면 R을 이용한 데이터 분석 실무 참조 )
> print("Hello R") [1] "Hello R" > 1:10 [1] 1 2 3 4 5 6 7 8 9 10 |
2.2 rJava
Java와 R간의 인터페이스를 위하여 JRI(이하 rJava)를 설치한다.
2.2.1 rJava 란
JRI는 단일 스레드로 Java 애플리케이션에서 R을 실행할 수있는 Java / R 인터페이스다. 기본적으로 Java에 R 동적 라이브러리를 로드하고 R 기능에 Java API를 제공합니다. R의 기능과 전체 실행 REPL에 대한 간단한 호출을 모두 지원한다.
2.2.2 rJava 설치
rJava 설치
y2kpooh@pooh:~$ aptitude install r-cran-rjava |
환경변수 세팅
y2kpooh@pooh:~$ export R_HOME=/usr/lib/R y2kpooh@pooh:~$ export CLASSPATH=.:/usr/lib/R/site-library/rJava/jri/ y2kpooh@pooh:~$ export LD_LIBRARY_PATH=/usr/lib/R/site-library/rJava/jri/ |
2.3 Eclipse 세팅
2.3.1 Java Application 빌드세팅
VM arguments : -Djava.library.path=/usr/lib/R/site-library/rJava/jri/ 추가
Environment R_HOME 추가
2.3.2 Maven 빌드세팅
VM arguments : -Djava.library.path=/usr/lib/R/site-library/rJava/jri/ 추가
Environment R_HOME 추가
2.3.3 JRI dependency 추가
<dependency> <groupId>org.nuiton.thirdparty</groupId> <artifactId>JRI</artifactId> <version>0.8-4</version> </dependency> |
위와 같이 세팅을 하게 되면 이제 이클립스에서 rJava를 이용하여 R을 실행할 수 있다.
3. rJava Coding
(http://www.rosuda.org/R/nightly/JavaDoc/)
rJava를 이용한 간략한 실행 클래스이다 해당 클래스 생성 후 Run As -> Java Application 실행하면
아래 Result console화면에서 실행된 데이터를 확인 할 수 있다.
Example.java
import org.rosuda.JRI.Rengine; import org.rosuda.JRI.REXP; public class Example { public static void main (String[] args) { System.out.println("Creating Rengine (with arguments)"); String[] Rargs = {"--vanilla"}; Rengine re = new Rengine(Rargs, false, null); System.out.println("Rengine created, waiting for R"); if (!re.waitForR()) { System.out.println("Cannot load R"); return; } REXP rn = re.eval("rnorm(4)"); double[] rnd = rn.asDoubleArray(); for(int i=0; i<rnd.length; i++){ System.out.print(rnd[i] + " "); } System.out.println(); re.end(); System.out.println("Bye."); } } |
Result console
Creating Rengine (with arguments) Rengine created, waiting for R -0.4895186412991081 0.9995073716724703 -1.3400294093157445 -1.6906407959968786 Bye. |
'R' 카테고리의 다른 글
R을 이용한 중심극한정리 (3) | 2013.08.02 |
---|---|
rChart (0) | 2013.06.13 |
[JRI] R Parsing data.frame to JSON (1) | 2013.06.11 |