如何在R库中创建不可见的函数

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

我使用一些Cpp函数来创建R库,我使用Rcpp.package.skeleton()来实现。在同一个Cpp文件中,我具有更多功能。有没有一种方法可以使我无法使用的功能不可见?

例如,我有:

#include <Rcpp.h>
// [[Rcpp::export]]

int a (int x){
return x+2;
}

// [[Rcpp::export]]
int b(int y){
z=a(y);
return(z);
}

我只想调用“ b”函数。

我使用Rcpp骨架制作包装,如果我执行R CMD检查警告时会告诉我:

Undocumented code objects:'a'

因为我只为函数“ b”做文档。

是否有执行此操作的方法?在RStudio中,当我编写要编写的功能的功能预览时出现,并且我不希望功能“ a”使用它,而只希望功能“ b”使用它]

r rcpp
1个回答
3
投票
[如果您希望能够在程序包内部将a()用作R函数,但希望对最终用户隐藏它,则需要使用以句点开头的名称导出它,因此,请使用[ C0],则键入// [[Rcpp::export]]。现在,您可以在包的R代码中使用// [[Rcpp::export(.a)]]作为函数,但对包的最终用户将其隐藏。

.a()

现在,在R中,您可以这样做:

#include <Rcpp.h>

// [[Rcpp::export(.a)]]
int a (int x){
return x+2;
}

// [[Rcpp::export]]
int b(int y){
z = a(y);
return(z);
}

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