标签: roxygen2

在编写Rd文档时,如何保留行中的初始空格?

在尝试为自己找到关于这个问题的解决方案时,我发现自己陷入了尝试编写有效的Rd标记.我想要的是添加一个名为的部分Raw Function Code,并将函数的代码放在其下.通过编写脚本来修改要包含的Rd文件,我在这方面取得了有限的成功

\section{Raw Function Code}{\code{
# some piece of R script will eventally provide this part of the text
}}
Run Code Online (Sandbox Code Playgroud)

但是,即使我手动将文本正确地分隔成.Rd文件(使用空格或制表符),每条线的初始空白区域似乎也会被剥离,留下不合需要的外观功能.我注意到如果我在白色空间之前提供一个起始字符,则保留空白区域.但是,我不想提供一个起始角色,因为我希望人们能够直接从制作的PDF中复制和粘贴.

我查看了parseRd,我知道有三种类型的文本LaTeX-like,R-like和verbatim.我试图将我的功能代码放在\ code和\ verb中,似乎都没有产生预期的结果.我该怎么做才能抓住我最初的空白区域?

r literate-programming rd roxygen2

5
推荐指数
1
解决办法
588
查看次数

如何在Rd文件中使用roxygen2为S4方法自动填充使用标记

我有一个包含S3和S4方法组合的包(是的,我知道,但尝试为sort()编写一个S4,as.matrix()等等...).所以我坚持使用CRAN的经典roxygen2(版本2.2.2)

我注意到无论我尝试什么,我都无法在Rd文件中获得自动填充的用法标记.我知道我可以使用@usage手工完成,但我想保持自动化,因为我有一个相当广泛的代码库,我不想错过任何地方的标签.

一个例子:

#' A small test function
#' 
#' This function tests roxygen2
#' @param x that's right, it's called x
#' @param ... some more stuff
#' 
#' @rdname testfun-methods
#' @aliases testfun
#' @docType methods
#' @export
setGeneric("testfun",function(x,...) standardGeneric("testfun"))

#' @rdname testfun-methods
#' @aliases testfun,matrix-method
#' @return the matrix minus 1
setMethod("testfun","matrix",function(x,...){x - 1})

#' @rdname testfun-methods
#' @aliases testfun,numeric-method
#' @return a vector plus 1
setMethod("testfun","matrix",function(x,...){x + 1})
Run Code Online (Sandbox Code Playgroud)

如果我将它包装在一个包中,使用roxygen2(和RStudio,如果这很重要)进行roxygenize,并检查帮助文件,它看起来像这样:

\docType{methods}
\name{testfun}
\alias{testfun}
\alias{testfun,matrix-method}
\alias{testfun,numeric-method}
\title{A small …
Run Code Online (Sandbox Code Playgroud)

r help-files s4 roxygen2

5
推荐指数
0
解决办法
176
查看次数

roxygen2:导出打印方法的问题

我已经更新至V4.0.0 roxygen2和我现在正在尝试转换@ S3method和@method命令@export以下的指示命令在这里.这似乎对我的所有方法都有效,除了那些与print相关的方法.

这是一个玩具示例,说明了我的问题(我理解示例的愚蠢).这是.R文件......

#' Test.
#' 
#' Test.
#'@aliases zzzTest print.zzzTest summary.zzzTest
#'@param v A numeric vector.
#'@param x A \code{zzzTest} object.
#'@param object A \code{zzzTest} object.
#'@param \dots Additional arguments for the S3 methods.
#'@return A \code{zzzTest} object.
#'@keywords manip
#'@examples
#'z <- zzzTest(runif(10,1,2))
#'print(z)
#'summary(z)
#'@rdname zzzTest
#'@export zzzTest
zzzTest <- function(v) {
  tmp <- log(v)
  class(tmp) <- "zzzTest"
}

#'@rdname zzzTest
#'@export
print.zzzTest <- function(x,...) { print(x, ...) }

#'@rdname zzzTest
#'@export
summary.zzzTest <- …
Run Code Online (Sandbox Code Playgroud)

r roxygen2

5
推荐指数
1
解决办法
800
查看次数

在 S4 中编写函数并使用 roxygen2 时开发 R 包

我从An R Companion to Applied Regression - Chapter 8 中获取了以下代码。除了RS4. 当我构建文档时,我得到了lreg5-class.Rd而不是lreg5.Rd并且无法得到lreg5功能。这是我第一次尝试构建一个R包。

lreg5 函数

#' An S4 class to Logistic Regression.
#'
#' @export
#'  
#' @slot coefficients Coefficients
#' @slot var Variance Covariance Matrix
#' @slot deviance Deviance
#' @slot predictors Predictors of the model
#' @slot iterations No of iterations for convergence

setClass(
   Class = "lreg5"
 , slots =  list(
        coefficients="numeric"
      , var="matrix"
      , deviance="numeric" …
Run Code Online (Sandbox Code Playgroud)

r devtools package s4 roxygen2

5
推荐指数
1
解决办法
733
查看次数

在 NAMESPACE 中使用 Roxygen 制作 S3method

我想使用 roxygen2 导出一个名为 [.myclass 的 S3method,但我看不到一种干净的方法来做到这一点。

我需要 NAMESPACE

S3method("[",myclass)
Run Code Online (Sandbox Code Playgroud)

在其中或在我需要该包后无法使用该方法,但 roxygen2 似乎不想帮助我解决这个问题。

我可以强迫它

#' @S3method [ myclass
setMethodS3("[",
        c(x="myclass"),
        function(x,i) {
blah blah balh
})
Run Code Online (Sandbox Code Playgroud)

但是 roxygen 然后说 s3method 已弃用,我应该改用 @export,但是

#' @export
setMethodS3("[",
          c(x="myclass"),
          function(x,i) {
  blah blah balh
 })
Run Code Online (Sandbox Code Playgroud)

只是不这样做。(在 NAMESPACE 中放置一个空的导出)。

我问了包的作者,他建议我使用@method 和@export,但这也不起作用

#' @method [ myclass
#' @export
setMethodS3("[",
          c(x="myclass"),
          function(x,i) {
  blah blah balh
 })
Run Code Online (Sandbox Code Playgroud)

在 NAMESPACE 中也以“export()”结尾

我错过了什么?

r roxygen2

5
推荐指数
1
解决办法
718
查看次数

roxygen2中的\ code {\ link {function-name}}

这是我编写R-package的第一次经验。我按照此链接http://kbroman.org/pkg_primer/中给出的说明使用了roxygen2

除少数外,Everythig一切正常。.可能有一个更简单的解决方案来解决问题,但我没有发现线索我在做什么错。我希望此博客中的某人可以提供解决方案以解决我的问题。

第一个问题与roxygen2中的{\ code \ link {function-name}}有关:在.R脚本中,我包括以下内容:

#' @seealso \code{\link{s2a}} 
Run Code Online (Sandbox Code Playgroud)

在记录(生成.Rd文件)之后,没有到s2a的超链接,在文件s2a中显示的像普通文本一样,而不像超链接.. export(s2a)在NAMESPACE中列出。还有其他需要修改的地方吗?

第二个问题是关于data()的:我将数据集保存为.Rdata格式,并放在包目录中的data /中。我还在R /中创建了.R脚本,如下所示:http://kbroman.org/pkg_primer/pages/data.html

在Description文件LazyData中:true。

但是当我在R控制台中键入data(shh)时会给出警告消息

data(shh)警告消息:在data(shh)中:找不到数据集“ shh”

任何想法都有很大帮助:)

r roxygen2

5
推荐指数
1
解决办法
1277
查看次数

roxygen2如何不运行示例文件

我很清楚当代码直接在roxygen注释中时,如何使roxygen不运行示例。但是,某些示例可能有些冗长,或者您希望将示例编译在examples目录中。在这种情况下@example file_path工作正常,但我无法弄清楚如何使roxygen无法运行(即\dontrun)示例文件

承认这与问题非常相似,但注释显示该问题未得到回答。

测试

# this does not work
#' @title test_fun
#' @example \dontrun{examples/test_example.R}
test <- function(){
    print("hello")
}

# this does
#' @title test
#' @examples 
#' \dontrun{
#' test()
#' }
test <- function(){
    print("hello")
}
Run Code Online (Sandbox Code Playgroud)

test_example.R

test()
Run Code Online (Sandbox Code Playgroud)

如何获得前一种方法?

r roxygen2

5
推荐指数
1
解决办法
781
查看次数

如何记录RcppExports.R链接函数?

在my中RcppExports.R,事情看起来像这样:

# This file was generated by Rcpp::compileAttributes
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

rcppeigen_ftrans <- function(A) {
    .Call('mypkg_rcppeigen_ftrans', PACKAGE = 'mypkg', A)
}
Run Code Online (Sandbox Code Playgroud)

我尝试这样记录我的代码:

# This file was generated by Rcpp::compileAttributes
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393
# 
#' Fast Matrix Transpose
#' 
#' (description)
#' @param ...
#'

rcppeigen_ftrans <- function(A) {
    .Call('mypkg_rcppeigen_ftrans', PACKAGE = 'mypkg', A)
}
Run Code Online (Sandbox Code Playgroud)

每当我按下document按钮时,它就会roxygen2自动运行 Rcpp::compileAttributes(),然后无需文档即可重新生成该文件。我还尝试手动编写.Rd文档文件,但是再次单击时document.Rd 文件被删除。我想记录这些链接功能,但不知道如何。

r rcpp roxygen2

5
推荐指数
1
解决办法
326
查看次数

为R包中的多个参数继承Roxygen2文档

我写的R包,要继承两个参数(比如文档xy)从旧的功能(比如old())一个新的功能,new().扭曲是这两个参数共享相同的参数描述.也就是说,在old()函数中,它们被记录在一行中并用逗号分隔,如下所示:

#' @param x,y Two arguments with the same description

我使用以下方法new()来继承这些参数:

#' @inheritParams old

但是,当我构建包时,new()列表的文档x却没有y.

有没有办法继承像这样的多个参数?

documentation r roxygen2

5
推荐指数
1
解决办法
741
查看次数

坚持使用S3方法定义autoplot

我坚持定义S3方法autoplot.

我有以下(完整代码在这里):

#' Autoplot for bigobenchmark object
#'
#' @importFrom ggplot2 autoplot
#'
#' @param object
#'
#' @return A ggplot2 plot
#' @export
#'
#' @examples
#' # Create plot for benchmarks
#' library(ggplot2)
#' bench <- bigobenchmark(1:n, for(i in 1:n) for(i in 1:n) 1:n, args=seq(from=1, to=100, length.out = 50))
#' autoplot(bench)
autoplot.bigobenchmark <- function(object) {
  plt <- ggplot2::ggplot(data = object$benchmarks, ggplot2::aes(x=arg, y=mean, colour=expr))
  plt <- plt + ggplot2::geom_line()
  plt <- plt + ggplot2::geom_pointrange(aes(ymin=min, ymax=max)) …
Run Code Online (Sandbox Code Playgroud)

r r-s3 roxygen2 r-package

5
推荐指数
1
解决办法
191
查看次数