2
找到我建立一個R
package
(稱爲myUtils
),它使用一個文件cpp
,在RStudio
以下Hadley's manual。我cpp
文件駐留在src
目錄,運行後創建:devtools::use_rcpp()
,我R
目錄下我有一個名爲myUtils.R
文件,用這些行:RCPP功能不能由R
#' myUtils: A package with various functions for my analyses
#'
#'
#' @docType package
#' @name myUtils
#' @useDynLib myUtils
#' @importFrom Rcpp sourceCpp
NULL
這是我的cpp
文件:
// [[Rcpp::depends(RcppArmadillo, RcppEigen)]]
#include <RcppArmadillo.h>
#include <RcppEigen.h>
using namespace Rcpp;
// [[Rcpp::export]]
SEXP armaMatMult(arma::mat A, arma::mat B){
arma::mat C = A * B;
return Rcpp::wrap(C);
}
// [[Rcpp::export]]
SEXP eigenMatMult(Eigen::MatrixXd A, Eigen::MatrixXd B){
Eigen::MatrixXd C = A * B;
return Rcpp::wrap(C);
}
然後我跑devtools::document()
裏面添加useDynLib(myUtils)
到NAMESPACE
文件。然後我跑Build & Reload
,其中成功完成,並創建了RccpExports.R
文件中R
目錄,在它與cpp
功能,例如:
eigenMatMult <- function(A, B) {
.Call('_myUtils_eigenMatMult', PACKAGE = 'myUtils', A, B)
}
然後我試圖測試eigenMatMult
,但它不認可:
set.seed(1)
A <- matrix(rnorm(100), 10, 10)
> eigenMatMult(A=A,B=A)
Error: could not find function "eigenMatMult"
和既不myUtils::
之前,當出現看起來像我失去了一些東西,但我無法弄清楚它是什麼。
幫助將不勝感激。
我建議你向Wickham博士和/或他的bug網站提交錯誤報告。 RcppArmadillo的作品;將本書移開,從我們提供的RcppArmadillo.package.skeleton()開始,測試和記錄。乾杯。 –
當然,你還需要_build_包'myUtils'和_load_它。你的問題不清楚你是否做過。 –
我測試功能之前做的最後一件事是構建與刷新 - 這是在我的崗位 – dan