RCPP Armadillo:在函数中打印整数值

RCPP Armadillo: Print integer value in function

CPP 和 RCPP 的新手

我正在用 RCPP 组合一个 R 包。

这是我的步骤:

  1. 转移到带包的目录。
  2. 运行 compileAttributes(pkgdir = ".",verbose=TRUE)
  3. 然后 运行 从 devtools 构建和安装。

我希望我的 CPP 函数之一在调用时打印一条消息。 所以我补充说:

Rcpp::Rcout << "Hello World!" << std::endl;

然后我完成了上面的步骤 1 到 3。但是没有雪茄。甚至没有雪茄。

理想情况下,我希望它打印出一个整数值 i,例如

示例代码。

Rcpp::Rcout << i << std::endl;

到目前为止,它编译和函数 运行s - 但没有 dear 变量的打印输出。帮助!下面是我的功能示例。我怀疑有一些标准方法可以将值传递给 R 或简单地从 CPP 打印。

    # include <RcppArmadillo.h>
    // [[Rcpp::depends(RcppArmadillo)]]
    // [[Rcpp::plugins(cpp11)]]

    using namespace Rcpp ;
    arma::mat sillyme (arma::mat FE) {
  
    arma::mat FEE = FE ;
    Rcpp::Rcout << "Hello World!" << std::endl;
    Rcpp::Rcout << FE.n_rows << std::endl;

    return(FEE) ;
    }

在我的系统(Ubuntu 20.04,R 4.0.0)上,这按预期工作(在添加 // [[Rcpp::export]] 属性以确保该函数可从 R 调用之后):

sillyme(diag(2))
# Hello World!
# 2
#      [,1] [,2]
# [1,]    1    0
# [2,]    0    1