标签: roxygen2

roxygen2包文档中的逐字输出

我在RStudio中使用roxygen2来生成包文档.如何强制@description部分中的以下内容显示为逐字固定字体?

SettingID    Value    
RedItem      Patient_10574    
GreenItem    Record_433    
Run Code Online (Sandbox Code Playgroud)

我的解决方法是将它放入@examples\dontrun {},但这不是我想要的.

@Joshua Ulrich在这里找到了一个(非)解决方案

r package roxygen2

7
推荐指数
1
解决办法
760
查看次数

如何在描述中自动添加/更新依赖/导入/建议版本?

我喜欢让我的 R 包保持最新,并且在开发我自己的包时,我想坚持 @Hadley\ 的建议

\n\n
\n

一般来说,指定版本并保守地选择需要哪个版本总是更好。除非您另有所知,否则始终要求版本大于或等于您当前使用的\xe2\x80\x99 版本。

\n
\n\n

所以,我需要其中一些DESCRIPTION

\n\n
Imports:\n knitr (>= 1.13),\n rmarkdown (>= 1.0)\n
Run Code Online (Sandbox Code Playgroud)\n\n

是否有现有工具可以根据我当前安装的软件包以编程方式更新依赖项的版本?

\n\n

我知道这是一件小事,我可以手动完成,但我只知道这是一种很容易忘记的事情。

\n\n

使用包的本地安装版本作为最小依赖项似乎也有意义,因为我使用这些依赖项进行了测试/构建。

\n\n

我有理由不应该这样做吗?

\n

r devtools roxygen2 package-development

7
推荐指数
2
解决办法
1660
查看次数

roxygen2没有创建.Rd文档

我无法使用RStudio和Roxygen2为我的包生成.Rd文档文件.首先,我要提一下,我已经在这里发布了类似的问题,并且已经完成了以下工作:

  1. 使用#'在文件开头启动的Roxygen2块

  2. 已配置的构建工具>已检查生成文档,其中包含"使用roxygen生成"和"运行时自动氧化"下的Roxygen> Configure> Checked all fields

  3. 确保'man'文件夹中没有.Rd文件

甚至在那之后,当我在RStudio上执行"构建和重新加载"时,我得到以下输出(请注意以下行:在MYPACKAGE包中找不到手册页:

= => devtools :: document(roclets = c('rd','collat​​e','namespace','vignette'))>

更新MYPACKAGE文档加载MYPACKAGE文档已完成

==> Rcmd.exe INSTALL --no-multiarch --with-keep.source MYPACKAGE

  • 安装到库C:/Users/user/Documents/R/win-library/3.3
  • 安装包'MYPACKAGE'...**R**数据 *将数据集移动到lazyload DB**准备延迟加载包没有找到包'MYPACKAGE'中的手册页**帮助*安装帮助索引**构建包索引**测试是否可以加载已安装的软件包
  • 完成(MYPACKAGE)

编辑: 经过进一步调查,这似乎是由于我的R目录中有子目录,默认情况下不支持.一个可能的解决方案是在这里,但是,我还没有尝试过.一旦我能够执行测试,我将立即报告结果.

r rstudio roxygen2

7
推荐指数
1
解决办法
798
查看次数

R 包失败 devtools::check,因为即使在 NAMESPACE 中导入函数,“找不到函数”

尝试R使用roxygen2和构建我的第一个包devtools。我在该部分添加了一个使用%>%和的函数。当我运行它时失败,因为它找不到函数或.mutate@examplescheck()%>%mutate

基于thisthisthis我尝试了以下方法:

我有#' importFrom magrittr %>%#' importFrom dplyr mutate在函数的.R文件中。我也有magrittrdplyrImports:DESCRIPTION文件。运行后document(),我的NAMESPACE文件包含importFrom(dplyr,mutate)importFrom(magrittr,"%>%").

最小R/test.R文件:

#' Conditional mutate
#'
#' \code{mutate_cond} mutates the \code{data.frame} only on the rows that
#' satisfy the condition.
#' 
#' @param .data \code{data.frame}
#' @param condition expression …
Run Code Online (Sandbox Code Playgroud)

r devtools roxygen2 dplyr magrittr

7
推荐指数
1
解决办法
1194
查看次数

roxygen2"错误:title需要一个值"

我收到了一个roxygenize()我无法理解的错误.我有一个我的杂项函数包,其中.Rd文件是通过roxygen生成的.

错误是Error: titlerequires a value,这表明没有@title标签.但是文件中有一个@title标签kmmisc-package.R,所以我不确定是什么问题.

kmmisc-package.R 包含:

##' Miscellaneous Functions
##' 
##' \tabular{ll}{
##' Package: \tab kmmisc\cr
##' Type: \tab Package\cr
##' Version: \tab 0.1-2\cr
##' Date: \tab 2011-10-06\cr    
##' License: \tab GPL-2\cr
##' LazyLoad: \tab yes\cr
##' LazyData: \tab yes\cr
##' }
##' 
##' @author Me \email{my@@email}
##' 
##' Maintainer: Me \email{my@@email}
##'
##' @name kmmisc-package
##' @docType package
##' @title KM Misc
##' @keywords package
##' 
NULL
Run Code Online (Sandbox Code Playgroud)

我正在使用R …

r roxygen roxygen2

6
推荐指数
1
解决办法
848
查看次数

使用roxygen记录setter函数

我有一个功能,除了attr任何R对象的唯一广告.基础演示:

#' Setter function
#' @param x an R object
#' @param value a character value to set
#' @export
`foo<-` <- function(x, value){
    attr(x, 'foo') <- value
    return(x)
}
Run Code Online (Sandbox Code Playgroud)

这有点像魅力,除了生成一个好的Rd文件,相关部分:

\usage{
  foo(var, value) <- value
}
Run Code Online (Sandbox Code Playgroud)

当然,它会在R CMD check应该运行时触发警告foo(var) <- value.

任何提示都会非常有意义!


更新:感谢richierocks似乎有一个修复

documentation setter r roxygen roxygen2

6
推荐指数
1
解决办法
1050
查看次数

使用roxygen2记录S4方法:明确区分帮助文件中的方法

在你瞄准和射击之前

我知道这个问题与这篇文章密切相关.事实上,我遵循了各种答案中给出的建议,但仍然认为生成的帮助文件有点"尴尬"或至少看起来有点"捣碎",因此我的问题

实际问题

  1. 在记录S4泛型及其各自的方法时,如何最终得到一个Rd文件结构,让用户可以清楚地区分各种方法,使得文档的哪一部分特别属于哪种方法?
  2. 鉴于我提供了@alias标签,在尝试获取特定方法的帮助时,如何实际使用它们?有点像?foo-character-method而不只是打字?foo吗?
  3. 最好不要在通用方法中更好地记录a)签名参数,因为每个方法肯定都包含相应的文档和b)返回值,因为这也取决于相应的方法?

现在,我觉得我最终得到的帮助文件似乎无法正确区分通用和各种方法 - 至少在视觉上是这样.

但也许我还没有完全得到这个;-).在这种情况下,任何指针都将非常感谢!


这是一个可重现的示例,它生成mypkg包含S4泛型和两种方法的包.我试图遵循这篇文章中给出的建议和编写R扩展

确保目录

sapply(c("src", "package"), dir.create, showWarnings=FALSE)
Run Code Online (Sandbox Code Playgroud)

通用方法定义

gnrc.roxy <- c(
    "#' Doing Something Useful",
    "#'", 
    "#' Description here.",
    "#'", 
    "#' @param x A signature argument for method dispatch.",
    "#' @param y A signature argument for method dispatch.",
    "#' @param arg.1 A \\code{logical} scalar. If \\code{TRUE} (default)", 
    "#'      something happens; else not.",
    "#' @param …
Run Code Online (Sandbox Code Playgroud)

methods r package s4 roxygen2

6
推荐指数
0
解决办法
741
查看次数

在roxygen2 R包文档中插入markdown表

我正在写一个R包,我想在R帮助文件中包含一个表,例如在该@details部分中.我尝试直接包含markdown代码:

#' | Tables        | Are           | Cool  |
#' | ------------- |:-------------:| -----:|
#' | col 3 is      | right-aligned | $1600 |
#' | col 2 is      | centered      |   $12 |
Run Code Online (Sandbox Code Playgroud)

但这并没有给我想要的输出.我已经为整个软件包启用了markdown支持并安装了roxygen2 6.0.1.降价表是否不支持?我必须使用\tabular{}吗?

markdown r roxygen2

6
推荐指数
1
解决办法
427
查看次数

包之间导出和导入S3方法

免责声明:我在编写此问题时找到了解决该问题的方法。但是我现在的问题是“它如何工作?”

我正在尝试从一个包(例如pkg.from)导出S3方法并将其导入另一个包(例如pkg.to)。要导出该方法,请使用roxygen2注释。

#' @export
myclass <- function() {
  structure(NULL, class = 'myclass')
}

#' @export
print.myclass <- function(x, ...) {
  print('NULL with class myclass')
}
Run Code Online (Sandbox Code Playgroud)

文件NAMESPACE现在同时包含构造函数和方法。

S3method(print,myclass)
export(myclass)
Run Code Online (Sandbox Code Playgroud)

我相信这意味着它们都是出口的。这支持在装入程序包后可以同时调用这两个事实。

library(pkg.from)
methods(print)
# ...
# [130] print.myclass*
# ...
print(myclass())
# [1] "NULL with class myclass"
Run Code Online (Sandbox Code Playgroud)

问题是当我想将此方法导入到其他包中时roxygen2

#' @importFrom pkg.from print.myclass
Run Code Online (Sandbox Code Playgroud)

Build此消息发生期间:

Error : object 'print.myclass' is not exported by 'namespace:pkg.from'
ERROR: lazy loading failed for package 'pkg.to'
Run Code Online (Sandbox Code Playgroud)

如果我不导入 …

r roxygen2

6
推荐指数
0
解决办法
482
查看次数

是否可以使用roxygen2的非ASCII字符编写包文档?

是否可以使用roxygen2使用非ASCII字符(例如å,ä,ö)在R中编写文档?我问,因为我正在用瑞典语编写一个包含内部函数的包.

我使用以下代码使用roxygen来编写文档:

#' @param data data frame där variablen finns
#' @param x variabeln, måste vara en av typen character
Run Code Online (Sandbox Code Playgroud)

这会导致非ASCII字符失真.我可以手动更改.Rd文件,但我不愿意.

r roxygen2 r-package

6
推荐指数
2
解决办法
559
查看次数