在R中使用C ++代码

时间:2014-01-02 23:56:49

标签: c++ r

我正在试验Rcpp&内联包,以加快我的计算.. 我想知道如何使C ++ CODE(不是c ++函数)工作 有这些包吗?

这是我尝试的一个例子,它包括构建一个名为'tableau'的动态数组并显示结果。我都试过'cppFunction'和'cxxfunction'但没有成功...... 有人能给我一个暗示吗?

require(inline);require(Rcpp)

src='vector < vector < int > > tableau (

{

{1,2,3,42},

{0,2,3},

{11,12}

}

);

return tableau;
'

cppFunction(src)


Error in sourceCpp(code = code, env = env, rebuild = rebuild, showOutput = showOutput,  : 
  Error 1 occurred building shared library.
In addition: Warning message:
No function found for Rcpp::export attribute at file7bc1b0f5993.cpp:5 

1 个答案:

答案 0 :(得分:3)

R不知道如何处理<vector <vector <int>>。 要返回列表,您必须使用类型ListNumericVector

src = 'List tableau() {
  NumericVector v1 = NumericVector::create(1,2,3,42);
  NumericVector v2 = NumericVector::create(0,2,3);
  NumericVector v3 = NumericVector::create(11,12); 

  return List::create(v1, v2, v3);
}'
createTableau <- cppFunction(src)
createTableau()
## [[1]]
## [1]  1  2  3 42
## 
## [[2]]
## [1] 0 2 3
##
## [[3]]
## [1] 11 12

您应该至少阅读一些文档。这是一个很好的起点:Rcpp Tutorial