0

CPP 和 RCPP 的新手

我正在将一个 R 包与 RCPP 放在一起。

这是我的步骤:

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

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

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

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

理想情况下,我希望它打印出一个整数值 i,类似于

示例代码。

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

到目前为止,它编译并且函数运行 - 但没有打印出亲爱的变量。帮助!下面是我的功能示例。我怀疑有一些标准方法可以将值传递给 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) ;
    }
4

1 回答 1

2

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

sillyme(diag(2))
# Hello World!
# 2
#      [,1] [,2]
# [1,]    1    0
# [2,]    0    1
于 2020-07-10T02:03:33.407 回答