r-为rcpp包生成roxygen文档不起作用



我使用Rcpp::Rcpp.package.skeleton((或使用RStudio生成一个Rcpp包,以使用roxygen2文档进行测试,并将文件夹src中生成的测试cpp函数更改为:

#include <Rcpp.h>
using namespace Rcpp;
//’ Testing documentation with Rcpp
//’
//’ @param x        Character vector for testing  
//’ @param y        Numeric vector for testing more 
//’
//’ @return           List of x and y 
//’
//’ @export
// [[Rcpp::export]]
List rcpp_hello_world(CharacterVector x,NumericVector y) {
List z            = List::create( x, y ) ;
return z ;
}

我从man中删除了默认的.rd文件,并根据roxygen的要求将Encoding: UTF-8添加到DESCRIPTION文件中。

然后我在Rstudio 上运行ctrl-shift-b(安装并重新启动(

===Rcpp::compileAttributes((

  • 更新的R/RcppExports.R

==>devtools::document(roclets=c('rd','collate','namespace'(

首次使用roxygen2更新testRcpp1文档。正在升级自动地正在加载testRcpp1警告:现有的"NAMESPACE"文件不是由roxygen2生成的,不会被覆盖。文件已完成

===>R CMD安装…

我检查了man文件夹,但没有生成rd文件,我找不到我做错了什么。

sessionInfo((是:

R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.5 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=es_AR.UTF-8        LC_COLLATE=en_US.UTF-8    
[5] LC_MONETARY=es_AR.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=es_AR.UTF-8       LC_NAME=C                 
[9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=es_AR.UTF-8 LC_IDENTIFICATION=C       
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[1] Rcpp_1.0.0    testRcpp1_1.0
loaded via a namespace (and not attached):
[1] crayon_1.3.4      withr_2.1.2       rprojroot_1.3-2   assertthat_0.2.0  R6_2.2.2          backports_1.1.2  
[7] magrittr_1.5      cli_1.0.0         rlang_0.2.1       rstudioapi_0.8    testthat_2.0.1    desc_1.2.0       
[13] tools_3.5.1       pkgload_1.0.2     yaml_2.1.19       compiler_3.5.1    sessioninfo_1.1.1

问题似乎是用于注释的字符。您当前的代码

//’ Testing documentation with Rcpp
//’
//’ @param x        Character vector for testing  
//’ @param y        Numeric vector for testing more 

使用(即"右单引号"字符:代码146或0x92(,而不是'(即"撇号"字符:编码39或0x27(。解析器不查找右手引号,只查找撇号。所以改为

//' Testing documentation with Rcpp
//'
//' @param x        Character vector for testing  
//' @param y        Numeric vector for testing more 

最新更新