Rcpp初学者错误消息

时间:2015-11-26 20:43:54

标签: rcpp

我是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) );
')

1 个答案:

答案 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