используя код C ++ в R

0

Я экспериментирую с пакетами Rcpp и inline, чтобы ускорить мои вычисления. Я хочу знать, как сделать 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 ответ

3
Лучший ответ

R не знает, что делать с <vector <vector <int>>. Чтобы вернуть список, вы должны использовать тип List и NumericVector:

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

  • 4
    Мы предпочитаем нашу собственную, более обширную документацию. Также входит в комплект. И есть Галерея Rcpp .
  • 0
    Спасибо, очень полезно, я знаю о документации Rcpp, но некоторые вещи слишком технические для такого неискушенного ученого, как я, как для манипулирования данными с использованием Rcpp ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню