- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 R 程序包 (MyPackage
),其中有一些已导出(使用 @export
)和一些未导出的函数。如果我从包的其他地方调用一个非导出函数,引用它的最合适的方法是什么?例如,给定以下代码:
#' @export
f1 <- function(){
f2()
}
f2 <- function(){
print('hello')
}
当我在包上运行 linting 时,我收到警告:
no visible global function definition for 'f2'
我可以使用 MyPackage:f2
但我的理解是这不是必需的。对于同一包中的函数,我不希望得到错误“没有可见的全局函数定义”。这种情况下的最佳做法是什么?
最佳答案
正如我自己和其他人所提到的,您的代码不会产生这样的警告。
在最佳实践方面,不要使用 MyPackage:::f2
。如前所述 here .
A function is not exported to user is not present in the NAMESPACE. Ifyou use roxygen, putting @export tag ONLY for the function you want toexport will do the job.
正如您所做的那样,只需将 @export
标记用于您想要提供的功能,而不是内部功能,这是可行的方法。您应该只用一些 roxygen
注释来装饰您的内部函数,然后决定是否要为此函数创建一个手册页。
如果您不想为 f2
创建手册页,您应该使用 #' @noRd
标签。 ( source )
#' Internal function printing "hello"
#' @description A function that prints the text "hello".
#' @noRd
f2 <- function(){
print('hello')
}
如果您想为 f2
创建一个手册页,但要将其从手册索引中排除,您可以使用 @keywords internal
,它甚至可以使用f1
或基本上您不希望在手册中过于明显的任何功能。
#' Internal function printing "hello"
#' @description A function that prints the text "hello".
#' @keywords internal
f2 <- function(){
print('hello')
}
关于r - 同一 R 包中非导出函数的显式命名空间 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71070845/
我是一名优秀的程序员,十分优秀!