我是Rcpp的初学者我有这个错误消息来运行以下R代码。我使用的是Windows 10。 “compileCode中的错误(f,代码,语言=语言,详细=详细): 编译错误,未创建的功能/方法!警告信息:“
incltxt <- '
int fibonacci(const int x) {
if (x == 0) return(0);
if (x == 1) return(1);
return fibonacci(x - 1) + fibonacci(x - 2);
}'
fibRcpp <- cxxfunction(signature(xs="int"),
plugin="Rcpp",
incl=incltxt,
body='
int x = Rcpp::as<int>(xs);
return Rcpp::wrap( fibonacci(x) );
')
答案 0 :(得分:2)
考虑更简单和更新的cppFunction()
:
R> library(Rcpp)
R> cppFunction('int f(int n) { if (n < 2) return n; return f(n-1) + f(n-2);}')
R> f(10)
[1] 55
R>
编辑:这是您修复过的代码。您还需要加载Rcpp以使其插件注册:
R> library(Rcpp)
R> library(inline)
R> incltxt <- '
+ int fibonacci(const int x) {
+ if (x == 0) return(0);
+ if (x == 1) return(1);
+ return fibonacci(x - 1) + fibonacci(x - 2);
+ }'
R> bodytxt <- '
+ int x = Rcpp::as<int>(xs);
+ return Rcpp::wrap( fibonacci(x) );
+ '
R> fibRcpp <- inline::cxxfunction(signature(xs="int"), incl=incltxt, body=bodytxt, plugin="Rcpp")
R> fibRcpp(10)
R> 55