从 sourceCpp 移动到带有 RcppArmadillo 的包
Moving from sourceCpp to a package with RcppArmadillo
这与 post 关于从 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 通过“项目”>“创建项目”>“包”w/Rcpp 创建一个新项目也没有用,因为我一直收到一条错误消息,提示无法识别命令 arma。我尝试在 RccpExports.cpp 文件中添加 #include <RcppArmadillo.h>
,但每次我尝试构建和重新加载时,Rstudio 都会删除该行。谁能建议我如何从 .cpp 文件转到 RccpArmadillo 包?谢谢。
有些地方可能是错误的。首先,您确实需要修改 DESCRIPTION
文件以包含 LinkingTo: Rcpp, RcppArmadillo
并确保 #include <RcppArmadillo.h>
存在于 /src
目录中的每个 .cpp
文件中。您还需要包含两个 Makevars
文件。
Makevars.win
和 Makevars
以及:
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
有关设置 RStudio 以将 RcppArmadillo 作为包使用的完整演练,请参阅:
http://thecoatlessprofessor.com/programming/setting-up-rstudio-to-work-with-rcpparmadillo/
这个错误基本上是你的:
Trying to use R Studio to create a new project using Project>Create Project>Package w/Rcpp didn't work either
没有人说过 'Package with Rcpp' 和 'Package with RcppArmadillo' 是一样的。您只是误解了 RStudio 为您提供的好意。
RcppArmadillo 被 CRAN 上的 200 多个包使用。有时最简单的方法是复制其中一个,将其剥离并从以这种方式创建的框架开始。当然,还有一种更简单且已记录的方法:使用我们为这个用例编写的RcppArmadilllo.package.skeleton()
函数:创建一个RcppArmadillo 的基本(工作)包。
这与 post 关于从 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 通过“项目”>“创建项目”>“包”w/Rcpp 创建一个新项目也没有用,因为我一直收到一条错误消息,提示无法识别命令 arma。我尝试在 RccpExports.cpp 文件中添加 #include <RcppArmadillo.h>
,但每次我尝试构建和重新加载时,Rstudio 都会删除该行。谁能建议我如何从 .cpp 文件转到 RccpArmadillo 包?谢谢。
有些地方可能是错误的。首先,您确实需要修改 DESCRIPTION
文件以包含 LinkingTo: Rcpp, RcppArmadillo
并确保 #include <RcppArmadillo.h>
存在于 /src
目录中的每个 .cpp
文件中。您还需要包含两个 Makevars
文件。
Makevars.win
和 Makevars
以及:
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
有关设置 RStudio 以将 RcppArmadillo 作为包使用的完整演练,请参阅:
http://thecoatlessprofessor.com/programming/setting-up-rstudio-to-work-with-rcpparmadillo/
这个错误基本上是你的:
Trying to use R Studio to create a new project using Project>Create Project>Package w/Rcpp didn't work either
没有人说过 'Package with Rcpp' 和 'Package with RcppArmadillo' 是一样的。您只是误解了 RStudio 为您提供的好意。
RcppArmadillo 被 CRAN 上的 200 多个包使用。有时最简单的方法是复制其中一个,将其剥离并从以这种方式创建的框架开始。当然,还有一种更简单且已记录的方法:使用我们为这个用例编写的RcppArmadilllo.package.skeleton()
函数:创建一个RcppArmadillo 的基本(工作)包。