RInside 0.1.1 출시 및 새로운 예제

R-Blogger · 블로그·해설 · 2009-09-17

R-Blogger블로그·해설한국어2009-09-17

RInside 0.1.1 출시 및 새로운 예제

RInside 릴리스 0.1.1 및 새 예제지난주 RInside 0.1.0 릴리스는 CRAN에 처음 게시된 버전이었으며, 여전히 빌드 및 OS X에서의 사용에 몇 가지 문제가 있었습니다. Jan de Leeuw, Jeff Horner, 특히 Simon Urbanked가 테스트와 수정을 해 주었기 때문에, 어제 CRAN에 올라간 새로운 0.1.1 릴리스로 상황이 개선되었습니다. 새 기능은 없으며, 메인 Makefile과 예제 디렉터리용 Makefile의 수정, 일부 소소한 수정 및 예제 편집이 포함됩니다.또한 저는 감사의 표시로 THANKS 파일을 추가했습니다. 다양한 패치와 수정을 감사히 여깁니다. 오늘은 R-Forge의 SVN 아카이브에 새로운 예제를 커밋했습니다. 이는 r-devel에 있는 이 스레드를 기반으로 합니다. Abhijit Bera는 C로 이를 시도했지만, 저에게는 그의 질문이 C++와 Rcpp 클래스 및 RInside를 통해 얼마나 간단하게 할 수 있는지를 보여주는 명확한 동기가 됩니다. 작은 예제를 사용해, 작업은 Rmetrics 패키지 fPortfolio의 포트폴리오 솔버에 가중치 벡터를 전달하고 계산된 솔루션에 접근하는 것이었습니다. 원래 게시자는 C에서 fPortfolio가 사용하는 S4 클래스에 접근하는 데 어려움을 겪었고 가중치를 설정하지 못했습니다. 하지만 RInside를 사용하면, 우리는 단순히 가중치 C++ 벡터를 R에 전달하고 문제를 해결한 뒤, R 표현식을 편리하게 평가하여 솔루션 벡터를 다시 전달합니다.#include "RInside.h" /* 임베디드 R을 위한 RInside */ #include "Rcpp.h" /* R / C++ 인터페이스를 위한 Rcpp */ int main(int argc, char *argv[]) { try { RInside R(argc, argv); /* 임베디드 R 인스턴스 생성 */ SEXP ans; std::string txt = "suppressMessages(library(fPortfolio))"; if (R.parseEvalQ(txt)) /* 라이브러리 로드, 반환값 없음 */ throw std::runtime_error("R cannot evaluate '" + txt + "'"); txt = "lppData"; } catch (...) { // 예외 처리 } }
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
원문에서 전체 글 읽기
작성자
R-Blogger
출처
R-Blogger
플랫폼
R-Blogger
분류
블로그·해설
언어
한국어
발행일
2009-09-17