未记录的代码对象警告我不想导出的函数

问题描述 投票:0回答:1

我正在尝试用Rcpp编写一个R包。除了R CMD check my_package发出的警告外,一切都很顺利。

Status: 1 WARNING
checking for missing documentation entries ... WARNING
Undocumented code objects:
  ‘shiny_function’
All user-level objects in a package should have documentation entries.

这里shiny_function在C ++中实现,并使用Rcpp属性导出

// [[Rcpp::export]]
int shiny_function(int arg) {
  return arg;
}

问题是我想在导出到R时将其“重命名”为shiny.function,所以在R/shiny_function.R我有

shiny.function <- function(arg) {
  .Call("_my_package_shiny_function", arg)
}

收到此警告后,我修改了NAMESPACE以使exportPattern("^[^_]+")试图避免导出名称中带下划线的函数,但警告仍然存在。

如何“重命名”用C ++编写的Rcpp函数?

c++ r namespaces rcpp r-package
1个回答
5
投票

这是非常基本的:当你添加一个标签[[Rcpp::export]]时,你会得到你所要求的:一个导出的函数。并且导出意味着全局可见。

如果您不想这样,只需删除标签即可。您仍然可以通过常规方式通过.Call()解决一个功能,您可以在R层做任何事情,包括重命名,参数控制和验证等等。

如果仔细观察(丰富的,我知道的)文档,您将在Rcpp Attributes插图中看到,您还可以控制导出的内容和对象(即,您可以使C ++图层可以看到函数)。

© www.soinside.com 2019 - 2024. All rights reserved.