标签: roxygen2

使用roxygen2 v4导出名称中带点的非S3方法

roxygen2版本开始4.0.0,@S3method标签已被弃用,有利于使用@export.

程序包现在尝试检测函数是否为S3方法,如果认为它是一个,则自动将该行添加S3method(function,class)NAMESPACE文件中.

问题是,如果一个函数不是一个S3方法,但它的名字包含一个.然后roxygen有时会出错,并在不应该的时候添加该行.

有没有办法告诉roxygen函数不是S3方法?


根据要求,这是一个可重复的例子.

我有一个导入的包R.oo,其中包含一个名为的函数check.arg.

library(roxygen2)
package.skeleton("test")
cat("Imports: R.oo\n", file = "test/DESCRIPTION", append = TRUE)
writeLines(
  "#' Check an argument 
#' 
#' Checks an argument.
#' @param ... Some arguments.
#' @return A value.
#' @export
check.arg <- function(...) 0",
  "test/R/check.arg.R"
)
roxygenise("test")
Run Code Online (Sandbox Code Playgroud)

现在命名空间包含该行S3method(check,arg).

check是一个S3泛型R.oo,所以roxygen试图聪明,并猜测我想check.arg成为一个S3方法.不幸的是,这些功能是无关的,所以我没有.

(为了抢占我刚刚重命名的建议check.arg:这是其他人编写的遗留代码,我已经创建了一个checkArg替代品,但我需要将其check.arg作为兼容性的弃用函数保留.)

r roxygen2

18
推荐指数
1
解决办法
1028
查看次数

用于插入roxygen的键盘快捷方式#'注释开始

这个问题可能过多,但我找不到.基本上我使用RStudio和键盘快捷键cmd+ shift+ c来插入注释.还有其他组合直接插入roxygen标签#'吗?还是一种修改RStudio的方法告诉它添加'我按cmd+ shift+的时候c

r rstudio roxygen2

17
推荐指数
3
解决办法
3080
查看次数

不要通过roxygen2在构建R包中显示功能帮助文档

我正在使用devtools构建R包,并且有些功能并非设计为最终用户可见.但是,由于这些函数涉及调用C代码.Call,因此我必须@useDynLib在函数上面编写自动生成.Rd文件.这样,当我构建软件包时,即使我没有包含@export那些函数,它们仍会出现在帮助文档中......有没有办法抑制这些函数,即使它们已被记录?谢谢!

r devtools roxygen2

15
推荐指数
3
解决办法
2338
查看次数

如何在不加载包的情况下从另一个包扩展S3方法

我正在开发一个具有该功能的包forecast.myclass.我希望该功能与forecast包很好地协同工作.即,当forecast加载包时,代码forecast(object)应该forecast.myclass从我的包调用.

由于我只需forecast要从包中通用定义forecast,并且我不使用包中的任何其他功能,forecast我不愿意将其包含在Depends中.所以我通过以下方式在我的包中定义泛型:

##'
##' @export
forecast <- function(object,...) UseMethod("forecast") 

##' @rdname forecast.midas_r
##' @method forecast midas_r
##' @export
forecast.midas_r <- function(object,newdata=NULL,method=c("static","dynamic"),insample=get_estimation_sample(object),...) {
Run Code Online (Sandbox Code Playgroud)

现在,当forecast未加载包时,一切都按预期工作.但是,当我打开包forecast,然后forecast.midas_r不叫,做的时候forecast(object),其中object的类midas_r.我该如何解决这个问题?

r devtools roxygen2

15
推荐指数
3
解决办法
2352
查看次数

从R包手册中排除功能

我正在写一个R包,我正在用roxygen2记录我的所有函数.但是,我不希望所有功能都出现在软件包的手册中.如何指定应在包装手册中显示哪些功能,或哪些不应该?

我知道用一个前导点命名一个函数,例如,.f <- function()而不是f <- function()一个解决方案.还有其他解决方案吗?

documentation r package roxygen2

15
推荐指数
1
解决办法
1259
查看次数

使用roxygen2仅继承某些参数

在roxygen2中,可以使用标记@inheritParams继承另一个函数的完整参数集.但它是否也可以只继承它们的某个子集?(不包括继承的情况...,由...充分处理@inheritDotParams.)

r roxygen2

15
推荐指数
1
解决办法
851
查看次数

通过Roxygen添加useDynLib

我正在通过roxygen2包转换我的包以使用roxygen文档.现在我的包没有加载,我认为这是因为缺少来自NAMESPACE文件的useDynLib(mypackage)调用.我该如何生成这个?

r documentation-generation roxygen roxygen2

14
推荐指数
1
解决办法
2081
查看次数

可以为不在包中的对象创建Rd帮助文件吗?

我正在使用Rstudio简化Sweave和R的数据分析,我将与其他分析师分享.为了使变量的编码变得清晰,如果需要的话,可以使用帮助文件这样的东西来调用?myData并获取有用的文件.我喜欢Rd降价并认为它实际上具有记录分析数据集的巨大潜力,包括总体摘要,通过变量分解的变量,以及如何运行一些探索性分析的示例.

如果你专门创建一个包,这很容易做到这一点,但我认为它很混乱,因为包最终是一个函数集合,它们不集成Rnw文件.

我可以使用Roxygen2为不属于任何包的数据集创建帮助文件吗?

r roxygen2

14
推荐指数
3
解决办法
1910
查看次数

Roxygen和建议包

我正在开发一个包roxygen2,其中包括许多lattice基于可视化的包.这些都不错,但没有必要使用该程序包,因此lattice在上市Suggests:的第DESCRIPTION文件,而不是Depends:部分.

但是,我还没有想出如何加载lattice接获要求用户在两者传递的方式roxygenize()R CMD check.以下两种方式都使得lattice看起来像未声明的依赖关系,并将返回以下错误.

##' @import lattice
{}

##' Visualization
##'
##' @param x Data.
##' @param y More data.
##' @export
vizz <- function(x, y){
    xyplot(y ~ x)
}
Run Code Online (Sandbox Code Playgroud)

##' Visualization
##'
##' @param x Data.
##' @param y More data.
##' @export
vizz <- function(x, y){
    library(lattice)
    xyplot(y ~ x)
}
Run Code Online (Sandbox Code Playgroud)

两者都给出了同样的错误

$ R CMD check dummy.roxygen …
Run Code Online (Sandbox Code Playgroud)

r roxygen2

14
推荐指数
1
解决办法
1729
查看次数

当多个参数匹配时,如何在单个参数上使用@inheritParams?

我希望记录一个R函数,并在多个参数名称匹配时从其他函数继承单个参数文档.例如,假设我有以下2个功能.

#' Function 1.
#' 
#' Description of function 1.
#' 
#' @param x XYZ
#' @param y ZYX
#' @return Numeric
fun1 <- function(x, y) {value <- 1}

#' Function 2.
#' 
#' Description of function 2.
#' 
#' @param x ABC
#' @param y CBA
#' @return Numeric
fun2 <- function(x, y) {value <- 2}
Run Code Online (Sandbox Code Playgroud)

我现在想要创建第三个函数,它继承fun1的参数x和fun2的参数y.以下不起作用:

#' Function 3.
#'
#' Description of function 3.
#'
#' @inherit fun1 params x
#' @inherit fun2 params y
fun3 <- …
Run Code Online (Sandbox Code Playgroud)

r devtools roxygen2

14
推荐指数
1
解决办法
468
查看次数