在阅读了诸如关于使用Roxygen记录数据集的SO问题之后,我设法记录了一个数据集(我将其称为cells),它现在出现在生成的列表中,data(package="mypackage")并且如果我运行命令则会加载data(cells).在此之后,cells将在ls()运行时出现.
但是,在许多软件包中,数据可立即使用而无需data()呼叫.此外,ls()运行时不会显示数据名称.一个例子是baseball随附的数据集plyr.我查看了源代码plyr,但我看不出这是怎么做的.
我在RStudio中使用roxygen2来生成包文档.如何强制@description部分中的以下内容显示为逐字固定字体?
SettingID Value
RedItem Patient_10574
GreenItem Record_433
Run Code Online (Sandbox Code Playgroud)
我的解决方法是将它放入@examples\dontrun {},但这不是我想要的.
@Joshua Ulrich在这里找到了一个(非)解决方案
我正在使用roxygen2为文档编写一个r包.记录S4方法时遇到了一些麻烦.我已经定义了一个通用的s4方法(例如)和几个实现它的方法.myGeneric
问题:有没有办法自动记录泛型的所有方法?
手动解决方案是为每个方法添加这两行(这将是我的虚拟示例中的第一个方法):
##' @rdname myGeneric-methods
##' @aliases myGeneric,numeric,numeric,missing-method
Run Code Online (Sandbox Code Playgroud)
由于我使用了很多方法,我必须添加很多来满足R CMD检查.
我在Hadley的Advanced R中读到了关于记录S4方法的问题,可以使用@genericMethods:
如果您想要为通用实现的所有方法的自动列表,请在通用文档中使用@genericMethods.
我认为这不是roxygen2在其他名称中实现或实现的.我发现@genericMethods标签的唯一内容是在roxygen3 github 这里停止了(?).
只是一个虚拟示例,我只记录泛型并希望自动列出所有已实现的方法:
##' @param object An object
##' @param data Numeric vector or data.frame
##' @param Fun Function. Default function is \code{sum}
##' @param ... Extra named arguments passed to FUN
##' @docType methods
##' @export
setGeneric("myGeneric", function(object, data, FUN, ...)
{standardGeneric ("myGeneric")} )
setMethod("myGeneric", c("numeric", "numeric", "missing"),
function(object, …Run Code Online (Sandbox Code Playgroud) 这个问题与这个问题非常相似,但是当我尝试答案时,我会收到一个附加的"注意" R CMD check.虽然它只是一个NOTE我真的想要一个完全干净的检查.
* checking Rd line widths ... NOTE
Error: 8: no comma in argument list following \S4method
Execution halted
Run Code Online (Sandbox Code Playgroud)
如果我传递所有其他参数(i,j,drop)并记录所有参数但我不使用它,我可以摆脱这个.在我看来,如果在这种情况下不相关的情况下添加额外的文档将是一种浪费.
#' An S4 class that stores a list.
#' @export
setClass("testClass",
representation(a="list"))
#' Extract parts of testClass.
#' @param x testClass
#'
setMethod("[", signature(x = "testClass"),
function (x){
print("void function")
}
)
Run Code Online (Sandbox Code Playgroud)
Rd文件导致错误:
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/test.R
\docType{methods} …Run Code Online (Sandbox Code Playgroud) 以下MWE无法编译(通过devtools::document()):
#' MWE
#'
#' @examples
#' format('{}') # Works
#' format('{') # Nope
#' format('\{') # Nope
#' format('\\{')# Nope
format = function (str) {}
Run Code Online (Sandbox Code Playgroud)
无论我包含哪些"Nope"行,它总是会因错误而失败
氧气块开始失败mwe.r:1
不匹配的支架......
根据我对Rd文档的阅读,这应该通过转义括号来工作.然而,如上图所示,这并不能正常工作.我做错了什么或者这是Roxygen中的错误?
当我使用单一转义版本(format('\{'))时,一个提示可能是Roxygen错误是完整的错误消息:
不匹配的大括号:
"@example format('{}') # Works format('\\{') # Nope"
请注意,输入中的单个反斜杠在输出中加倍.
我正在研究R的PKNCA包.在开发测试代码时,一些测试也是很好的例子.我想把它们作为两者(测试和示例).有没有办法可以在roxygen2文档中嵌入一些内容,这些内容也会被复制到测试中?
我在想的是文档,如:
#' @exampleTest
#' set.seed(5)
#' rnorm(1) ## -0.8409
Run Code Online (Sandbox Code Playgroud)
这会产生如下测试:
expect_equal({set.seed(5)
rnorm(1)}, -0.8409, tol=1e-4)
Run Code Online (Sandbox Code Playgroud)
(tol来自这个事实,它是一个数字和示例中显示的位数.)
一些R包(例如 ggplot2,dplyr,devtools等)已按字母顺序题为他们的帮助/文档和链接到那些部分一栏(如下图红色箭头表示)的部分.其他包(例如RcmdrMisc)没有.
如何将这些元素添加到R包的帮助中?
我roxygen2用于文档.
我喜欢让我的 R 包保持最新,并且在开发我自己的包时,我想坚持 @Hadley\ 的建议:
\n\n\n\n\n一般来说,指定版本并保守地选择需要哪个版本总是更好。除非您另有所知,否则始终要求版本大于或等于您当前使用的\xe2\x80\x99 版本。
\n
所以,我需要其中一些DESCRIPTION:
Imports:\n knitr (>= 1.13),\n rmarkdown (>= 1.0)\nRun Code Online (Sandbox Code Playgroud)\n\n是否有现有工具可以根据我当前安装的软件包以编程方式更新依赖项的版本?
\n\n我知道这是一件小事,我可以手动完成,但我只知道这是一种很容易忘记的事情。
\n\n使用包的本地安装版本作为最小依赖项似乎也有意义,因为我使用这些依赖项进行了测试/构建。
\n\n我有理由不应该这样做吗?
\n我无法使用RStudio和Roxygen2为我的包生成.Rd文档文件.首先,我要提一下,我已经在这里发布了类似的问题,并且已经完成了以下工作:
使用#'在文件开头启动的Roxygen2块
已配置的构建工具>已检查生成文档,其中包含"使用roxygen生成"和"运行时自动氧化"下的Roxygen> Configure> Checked all fields
甚至在那之后,当我在RStudio上执行"构建和重新加载"时,我得到以下输出(请注意以下行:在MYPACKAGE包中找不到手册页:
= => devtools :: document(roclets = c('rd','collate','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使用roxygen2和构建我的第一个包devtools。我在该部分添加了一个使用%>%和的函数。当我运行它时失败,因为它找不到函数或.mutate@examplescheck()%>%mutate
我有#' importFrom magrittr %>%和#' importFrom dplyr mutate在函数的.R文件中。我也有magrittr和dplyr下Imports:的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)