这与关于从sourceCpp迁移到具有Rcpp Moving from sourceCpp to a package w/Rcpp的包的帖子有些相关。但是,我在Mac OS X 10.10.4上使用RcppArmadillo并且无法使程序包运行。与sourceCpp一起使用的文件如下:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// [[Rcpp::export]]
arma::mat cholcalcCpp(arma::mat& SS, arma::umat& Aadj){
int p = SS.n_rows;
arma::mat L(p,p);
arma::mat D(p,p);
L = arma::eye(p,p);
D = arma::eye(p,p);
return (L*sqrt(D));
}
尝试使用R Studio创建一个新项目使用Project&gt;创建项目&gt;包w / Rcpp无法正常工作,因为我不断收到错误消息,说明命令arma无法识别。我尝试在RccpExports.cpp文件中添加#include <RcppArmadillo.h>
,但每次尝试构建和重新加载时Rstudio都会删除该行。任何人都可以建议我如何从.cpp文件转到RccpArmadillo包?谢谢。
答案 0 :(得分:1)
有些事情可能是错的。首先,您需要修改DESCRIPTION
文件以包含LinkingTo: Rcpp, RcppArmadillo
,并确保#include <RcppArmadillo.h>
目录中的每个.cpp
文件中都存在/src
。您还需要包含两个Makevars
个文件。
Makevars.win
和Makevars
:
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
有关设置RStudio以使用RcppArmadillo作为程序包的完整演练,请参阅:
http://thecoatlessprofessor.com/programming/setting-up-rstudio-to-work-with-rcpparmadillo/
答案 1 :(得分:1)
错误基本上属于你的错误:
尝试使用R Studio创建一个新项目使用Project&gt;创建项目&gt;包含w / Rcpp无法正常工作
没有人说'带有Rcpp的套餐'与'带有RcppArmadillo的套餐'相同。你只是误解了RStudio向你提供的东西。
RcppArmadillo在CRAN上使用了200多个包。有时最简单的方法是复制其中一个,将其剥离并从以这种方式创建的框架开始。当然,还有一个更容易和记录的方式:使用我们为此用例编写的RcppArmadilllo.package.skeleton()
函数:创建一个基本(工作)包RcppArmadillo。