RcppArmadillo:有没有办法保留名字?

时间:2016-07-18 12:15:46

标签: r rcpp armadillo

请考虑以下代码:

funSrc33a <- '
NumericVector A  = as<NumericVector>(in1);
return wrap(A);
'
funSrc33b <- '
using namespace arma;
vec A  = as<vec>(in1);
return wrap(A);
'
iFun33a <- cxxfunction(sig = signature(in1 = "numeric"), funSrc33a, plugin = "Rcpp")
iFun33b <- cxxfunction(sig = signature(in1 = "numeric"), funSrc33b, plugin = "RcppArmadillo")
foo = c("First" = 1, "Second" = 2)
iFun33a(foo)
iFun33b(foo)

最终结果是:

> iFun33a(foo)
 First Second 
     1      2 
> iFun33b(foo)
     [,1]
[1,]    1
[2,]    2

是否有可能让犰狳保留输入向量中的名称,如Rcpp :: NumericVector?我想iFun33b的输出镜像iFun33a。

1 个答案:

答案 0 :(得分:2)

R对象可以具有属性。这就是存储行和列名称的方式。

事前 Armadillo对象没有这样的东西。你需要添加它。