#include "rcpp_add.h"
using namespace Rcpp ;
SEXP rcpp_add(SEXP a, SEXP b)
{
std::vector< std::map<std::string,int> > v;
std::map<std::string,int> m1;
std::map<std::string,int> m2;
int ax=Rcpp::as<int>(a);
int bx=Rcpp::as<int>(b);
m1["a"]=ax;
m1["b"]=bx;
m2["c"]=2;
m2["d"]=20;
v.push_back(m1);
v.push_back(m2);
return Rcpp::wrap(v);
}
此代码可以在交互式R
中加载,但在我使用SEXP a, SEXP b
时会告诉我错误。为什么?当我不使用SEXP a, SEPX b
时,R
环境中的函数是正确的
答案 0 :(得分:3)
您对错误消息的描述没有多大意义,但这是一个适合我的简单版本:
#include "Rcpp.h"
using namespace Rcpp;
// [[Rcpp::export]]
List rcpp_add(int a, int b) {
std::vector< std::map<std::string,int> > v;
std::map<std::string,int> m1;
std::map<std::string,int> m2;
m1["a"] = a;
m1["b"] = b;
m2["c"] = 2;
m2["d"] = 20;
v.push_back(m1);
v.push_back(m2);
return Rcpp::wrap(v);
}