标签: roxygen2

R使用没有roxygen2版本的roxygen2渲染Rd

使用roxygen2的自动记录功能,虽然它很棒且有用,但它对roxygen2包版本的每次更改都很烦人.它通过在每个文件中放入roxygen2版本来更新我的所有文档文件.见下文.

% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/src.R
Run Code Online (Sandbox Code Playgroud)

这些更改显然不会影响代码/包,但会通过在源版本控制过程中添加噪声来影响源控件版本控制.
可以在某个地方关掉吗?

r devtools roxygen2

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

在RStudio中记录R包中的R6类和方法

我正在努力学习R6类及其方法的文档.我的目标是在RStudio中获取方法的自动完成.目前,我只获取方法的名称,但没有通常使用roxygen2参数等记录函数的帮助信息.

目前,这是我的班级:

#' @importFrom R6 R6Class
MQParameters <- R6::R6Class(
  'MQParameters',
  public=list(
    initialize=function(file_path=NA) {
      private$location <- file_path
      mq_parameters <- read.delim(file_path, stringsAsFactors=FALSE)
      mq_parameters <-
        setNames(mq_parameters$Value, mq_parameters$Parameter)
      private$mq_version <- unname(mq_parameters['Version'])
      private$fasta_file <-
        gsub('\\\\', '/', strsplit(mq_parameters['Fasta file'], ';')[[1]])
    },
    # this method returns the version
    getVersion=function() {
      private$mq_version
    },
    # this methods returns the fastafile.
    # @param new_param it is possible to rewrite the basedir.
    getFastaFile=function(new_basedir=NA) {
      if(is.na(new_basedir)) {
        private$fasta_file
      } else {
        file.path(new_basedir, basename(private$fasta_file))
      }
    }
  ),
  private=list(
    location=NULL,
    mq_version=NULL,
    fasta_file=NULL …
Run Code Online (Sandbox Code Playgroud)

r rstudio roxygen2 r6

14
推荐指数
2
解决办法
1943
查看次数

如何使用Roxygen2添加没有通用别名的特定于类的别名?

一个简单的例子是我创建了一个扩展名show,这是一个S4基本方法.我不希望通过show在我的包中重新记录来导致消除歧义,我还想通过添加别名来合并我的扩展show的文档到新类的文档myPkgSpClassshow,myPkgSpClass-method.

#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,这会在roxygen2构建文档期间导致严重警告,Rd files with duplicated alias 'show':因为show此包中有多个类扩展,并且roxygen2已自动将别名列表中的通用术语添加到所有相关*-class.Rd文件:

\alias{show}
\alias{show,myPkgSpClass-method}
Run Code Online (Sandbox Code Playgroud)

但我认为我不想在任何实例中使用通用别名,因为它会强制需要show在我的包和基础之间消除歧义show.此问题也适用于从其他包扩展的其他S4方法show.

如果我将所有特定于类的方法标记到同一个.Rd文件中,那么警告就会消失,但是模糊性仍然存在,因为show别名仍会自动添加到该文档条目中.如果我手动\alias{show}.Rd文件中删除,那么问题似乎已解决,在roxygen期间没有警告R CMD check pkgname.那么如何让Roxygen2不添加通用别名呢?

其他背景:

这是从前一个问题构建的特定问题,用于将S4扩展导出/记录到基本方法: 是否需要在R包中导出基本方法扩展?文档含义?

关于使用Roxygen2记录S4方法/类的以下问题,它更具体,而不是包含在内:

如何使用roxygen2正确记录S4方法

如何使用Roxygen2正确记录S4类插槽?

documentation r roxygen s4 roxygen2

13
推荐指数
1
解决办法
1678
查看次数

如何在R帮助文件/ roxygen2中交叉引用方程式

我正在为我正在制作的R包记录我的一些函数.

我正在使用roxygen标记,尽管这与我的问题基本无关.

我已经将方程式放入我的文档中\deqn{...}.我的问题是:以后 有没有办法交叉引用这个等式?

例如,在我的Rd文件中:

\deqn{\label{test}
 y = mx + b
}
Run Code Online (Sandbox Code Playgroud)

我以后可以这样做:

参考方程\ ref {test},...

我已经尝试了\eqref{test},\ref{test}(它们都得到了"未知的宏"并且没有得到链接),而且\link{test}(它抱怨它无法找到功能,test因为它实际上只是用于链接到其他功能).

否则,我担心我可能做一些哈克,并添加在-- (1)Refer to equation (1) 手动的范围内\deqn的路文件等...

更新

一般答案似乎是"不".(噢...)

但是,我可以写一个小插图并在那里使用"普通"乳胶/包装.无论如何,我刚刚注意到我在roxygen/Rd文件中使用的矩阵方程?myFunction在帮助版本中看起来很糟糕(它们只显示为文字乳胶源).这是一种耻辱,因为它们在pdf版本的帮助下看起来很漂亮.

@Iterator指出了条件文本的存在,所以我将在.Rd文件中进行ASCII数学运算,但在pdf手册/晕影中进行Latex数学运算.

documentation r roxygen roxygen2

13
推荐指数
1
解决办法
1020
查看次数

从Matrix包导入S4功能

矩阵包定义用于相乘的矩阵,即由S4通用功能分派一大堆S4方法%*%,crossprodtcrossprod.

如何导入"%*%"方法,以便在我自己的包中使用?我跑的时候这段代码失败了devtools::document():

#' @title my function
#'
#' @description Does magic Matrix stuff
#' @import methods
#' @importFrom Matrix "%*%" Diagonal
myfun <- function(x, y){
  x %*% Diagonal(x=y)
}
Run Code Online (Sandbox Code Playgroud)

如果x是稀疏矩阵,我想确保此函数使用Matrix包中的稀疏矩阵乘法方法.但是当我运行时,devtools::document()我收到以下错误:

Updating mypackage documentation
Loading mypackage
Error: object ‘%*%’ is not exported by 'namespace:Matrix'
Run Code Online (Sandbox Code Playgroud)

r package sparse-matrix s4 roxygen2

13
推荐指数
1
解决办法
569
查看次数

在R CMD Check的文档对象中没有\ alias的\ usage中的错误对象

我已经为自己使用了一个小包装,使用devtools一切都很顺利.但是,我试图对它运行R CMD Check,并且出现了一些错误,似乎是因为我的用法和示例使用了基础R中不在我的包中的函数,例如这里是我的最小函数,以及roxygen文档

#' Function to Sort a dataframe with a given list of columns
#' Cribbed from Spector, P. (2008). "Data Manipulation with R", UseR! Springer. Pg78
#' @param df Dataframe to be sorted
#' @param ... list of columns to sort on
#' @return A sorted dataframe
#' @author "Paul Hurley"
#' @export
#' @usage with(dataframe,sortframe(dataframe,column1, column2, column3))
#' @examples with(iris,sortframe(iris,Sepal.Length,Sepal.Width,Petal.Length))
sortframe<-function(df,...){df[do.call(order,list(...)),]}
Run Code Online (Sandbox Code Playgroud)

和R CMD检查给出

Undocumented arguments in documentation object 'sortframe'
  'dataframe' 'sortframe(dataframe, column1, column2, column3)'
Documented arguments not …
Run Code Online (Sandbox Code Playgroud)

r package roxygen2

12
推荐指数
1
解决办法
1585
查看次数

如何使用roxygen记录包含具有相同名称的函数的R包?

我正在学习使用roxygen.我看到rd vignette提倡使用"_PACKAGE"来表示我正在创建包文档,并说"如果已经有一个名为pkgname()的函数,这也有效."

我也看过R包书的使用方法

NULL
Run Code Online (Sandbox Code Playgroud)

指定了@docType和@name,但是当我试图用任何一种方法制作一个玩具示例时,它并不像我期望的那样工作.

作为一个玩具示例,我想制作一个包含"hello()"函数的"hello"包.

我希望得到我的问候文件

?hello
Run Code Online (Sandbox Code Playgroud)

或者类似的东西

package?hello
Run Code Online (Sandbox Code Playgroud)

我希望得到有关所包含你好文档功能

?hello()
Run Code Online (Sandbox Code Playgroud)

我哪里错了? - 使用roxygen实现,我试图查询文档的方式,不正确的期望,还是其他什么?

我已经查看了有关包文档函数文档的问题,但对我来说仍然不清楚.

以下是我的玩具示例的一些细节:

你好/描述文件:

Package: hello
Type: Package
Title: A mostly empty package
Version: 0.1
Date: 2016-06-21
Authors@R: person("Some", "Person", email = "fake@madeup.org", role = c("aut", "cre"))
Description: More about what it does (maybe more than one line)
License: MIT
LazyData: TRUE
RoxygenNote: 5.0.1.9000
Run Code Online (Sandbox Code Playgroud)

你好/ R/hello.R

#' hello
#'
#' This is a mostly …
Run Code Online (Sandbox Code Playgroud)

r roxygen roxygen2

12
推荐指数
1
解决办法
782
查看次数

预览开发R文档

我使用的是写我的第一个R包装devtoolsroxygen2在RStudio IDE.我遇到的问题与预览.Rd文件有关,当我"循环".R文件时.我正在使用devtools::document()以获取.Rd文件,但是当我尝试通过编写以下任何一个来预览帮助页面时:

help("FunctionName")
?FunctionName
Run Code Online (Sandbox Code Playgroud)

控制台显示消息"使用开发文档...",但帮助窗口中有一个空白区域.使用devtools:load_all()导致同样的问题.也许这与devtools在环境中加载包的方式有关,但是文档"Writing R Extensions"(预计不会被查阅使用roxygen)和Hadley Wickham的书籍"R包"都没有提供可行的解决方案.

documentation r devtools roxygen2

12
推荐指数
1
解决办法
591
查看次数

是否有可能/建议跳过roxygen以支持roxygen2?

我最近被指向Roxygen解决我的文档困境/懒惰.但是在这个闪亮的Roxygen2中,根据我的理解,它有点像它自己的东西.Hadley的包装工具需要使用Roxygen2,但在任何地方都没有通过走路的方式.

鉴于我在学习过程中从头开始:

  1. 是否有一个用户,对于新用户,有利于Roxygen而不是Roxygen2,或者Roxygen2在所有方面都更好?

  2. 如果有的话,有哪些资源用于学习(最好是那些不依赖于Roxygen先前知识的资源)?

  3. Roxygen2是否与Roxygen向后兼容(这样投入学习和写作Roxygen的时间会延续下去)?

r roxygen roxygen2

11
推荐指数
2
解决办法
1071
查看次数

如何导出S3方法,以便在命名空间中可用?

我正在创建一个包,对于S3方法,我使用它们导出它们

##' @method predict myclass
##' @export
predict.myclass <- function(object,...) { }
Run Code Online (Sandbox Code Playgroud)

现在当我加载包时,然后predict处理类的对象myclass,但predict.myclass不导出函数.在NAMESPACE我只能获得参赛作品S3method(predict,myclass).那么有没有一种方法可以导出predict.myclass,这样用户就可以获得predict.myclass他(她)predict.myclass在控制台中写入的代码?

r devtools roxygen2

11
推荐指数
2
解决办法
2951
查看次数

标签 统计

r ×10

roxygen2 ×10

roxygen ×4

devtools ×3

documentation ×3

package ×2

s4 ×2

r6 ×1

rstudio ×1

sparse-matrix ×1