【发布时间】:2014-05-26 12:15:16
【问题描述】:
我有 2 个文件,Rfile.R 和 Cppfile.cpp。
Cppfile.cpp 中的内容:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
int CPPF(int k){return ++k;}
Rfile.R 中的内容:
RF<-function(k){return(CPPF(k))}
我想基于 2 个文件构建一个 R 包。我使用最新版本的 Rstudio 和 Roxygen2。
我尝试了 3 种方法来构建使用或不使用 Roxygen2 的包,并得到了不同的结果:
New Project->New Directory->R package->Type:Package w/Rcpp,添加 Rfile.R 和 Cppfile.cpp 作为源文件。构建并重新加载,一切正常。这些功能照常工作。
New Project->New Directory->R package->Type:Package w/Rcpp,添加 Rfile.R 和 Cppfile.cpp 作为源文件。选择“使用 Roxygen 生成文档”,检查其所有选项。 Build & Reload,功能不起作用。输入“RF”给出RF的内容,输入“CPPF”弹出“Object not found”。
New Project->New Directory->R package->Type:Package w/Rcpp,仅添加 Cppfile.cpp 作为源文件。选择“使用 Roxygen 生成文档”,检查其所有选项。构建并重新加载,该功能有效。 然后将Rfile.R直接复制到项目文件夹->R文件夹中。 Build & Reload,一切正常,功能运行良好。
是我使用了 Roxygen 错误还是 Roxygen 有错误?我需要它来记录。我可以坚持第三种方式,这花了我很多精力才能找到,但是有线。
谢谢!
解决问题的一种方法: 选择“使用 Roxygen 生成文档”时,不要勾选“NAMESPACE 文件”选项。
【问题讨论】: