Chapter 4 Rcpp 실행

다음은 R에서 C++ 코드를 실행하는 함수이며, Rcpp 패키지 내의 함수이다.

4.1 sourceCpp()

R 코드로 이루어진 파일(파일명.R)의 경우, source(파일명) 함수를 이용하여 R 소스코드를 실행할 수 있다. 이와 유사하게 R에서 C++ 소스코드(파일명.cpp)를 실행하는 함수는 sourceCpp(파일명)이다.

다음의 소스코드로 이루어진 test.cpp이라는 파일이 있다고 하자. (앞에서 다루었던 예시코드이다.)

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
  return x * 2;
}

C++에서는 함수 또는 클래스를 정의하기 때문에, sourceCpp()로 소스코드를 불러오게 되면, Global Environment에 timesTwo()라는 함수가 생성된 것을 확인할 수 있다. 따라서 C++ 코드로 짜여진 함수를 다음과 같이 R에서 사용할 수 있는 것이다.

library(Rcpp)
sourceCpp("test.cpp")

timesTwo(1:5)

실행결과는 다음과 같다.

[1]  1  4  9 16 25