如何向Rcpp中的对象添加多个类?

如何向Rcpp中的对象添加多个类?,r,rcpp,R,Rcpp,我试过这个: #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector difflag(NumericVector x, int lag) { int n = x.size(); NumericVector out(n-lag); for(int i=0; i<(n-lag); i++) { out[i] = x[i+lag] - x[i];

我试过这个:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector difflag(NumericVector x, int lag) {
    int n = x.size();
    NumericVector out(n-lag);

    for(int i=0; i<(n-lag); i++) {
        out[i] = x[i+lag] - x[i];
    }

    out.attr("class") += "myclass";
    return out;
}
#包括
使用名称空间Rcpp;
//[[Rcpp::导出]]
数值向量difflag(数值向量x,int-lag){
int n=x.size();
数值向量输出(n-滞后);

对于(int i=0;i可能类似于:

 CharacterVector classes = out.attr( "class" ) ;
 classes.push_back( "myclass" ) ;
 out.attr( "class" ) = classes ;

可以为通用的
append
函数留出空间。

fastread库有一个很好的例子:output.attr(“class”)=CharacterVector::create(“tbl_df”,“data.frame”);
 CharacterVector classes = out.attr( "class" ) ;
 classes.push_back( "myclass" ) ;
 out.attr( "class" ) = classes ;