我正在尝试使用roxygen2记录R包中的一些数据集.仅考虑其中一个:
mypkg/data/CpG.human.GRCh37.RDa
CpG.human.GRCh37
和一个名为:的文件mypkg/R/cpg-data.R
,其中包含:
#' @name CpG.human.GRCh37
#' @title CpG islands - human - genome build: GRCh37/hg19
#' @description This data set list the genomic locations of human CpG islands,
#' with coordinates based on the GRCh37 / hg19 genome build.
#' @docType data
#' @usage CpG.human.GRCh37
#' @format a \code{RangedData} instance, 1 row per CpG island.
#' @source UCSC Table Browser
#' @author Mark Cowley, 2012-03-05
#' @export
NULL
Run Code Online (Sandbox Code Playgroud)当我进行roxygenize时,会创建它mypkg/man/CpG.human.GRCh37.Rd
,包含:
\docType{data}
\name{CpG.human.GRCh37}
\alias{CpG.human.GRCh37} …
Run Code Online (Sandbox Code Playgroud) 在R中,一个非常简洁的特性是函数的源代码可以作为工作空间中的对象访问.
因此,如果我想知道源代码,例如,grep()
我只需键入grep
控制台并阅读代码即可.
同样,我可以grep
通过?grep
在控制台中输入来阅读文档.
问题:如何获取函数文档的源代码?换句话说,我在哪里可以找到.rd文件?
我发现研究精心编写的代码的来源是学习习语的一种很好的方法.现在我想研究如何为一些非常具体的案例编写文档.我无法在R安装中找到任何基本R功能的文档文件.也许我一直在寻找错误的地方.
我正在为函数编写R文档(Rd).在markdown中,我们可以创建一个超链接[google](https://www.google.com)
.我怎样才能在R文档中复制它?
似乎\link{...}
只能创建一个链接,这与我正在寻找的不同.
我的hyperSpec
包提供了处理光谱数据集的功能.我为来自其他软件包的许多功能提供了hyperSpec方法.但是,其中一些其他软件包,我已经列出,Suggests:
因为我不想强迫用户安装20个其他软件包(计算依赖项),如果它们可能永远不会使用特定功能.
从编码的角度来看,这很有效.但是,我不知道如何在.Rd文件中处理它 - 但我确信这是一个相当普遍的问题.
通常\code{\link[otherpkg]{fun}}
不会可靠地工作,因为不能保证otherpkg可用.如果未安装otherpkg,则链接断开.这将通过R CMD check
例如Winbuilder和r-forge 检测到.这意味着:包不会通过CRAN检查.
哪个包是个好例子?
到目前为止我找到的唯一提示(虽然没有解决方案):https://stat.ethz.ch/pipermail/r-devel/2009-November/055425.html(但该电子邮件没有答案).
我正在尝试在R文档中插入一个等式,以便:
\deqn{p_{x}(1)=Pr(y=1|x)}
Run Code Online (Sandbox Code Playgroud)
但它确实如我所料,其中x是p的下标.
有人知道R文档中的原因或如何下标p?
我正在努力在我的包中记录可视化功能.为此,我希望通过Rd文件'funcname.Rd'嵌入一个图像,它可以解释函数中使用的各种参数,如果用户去阅读包PDF手册或写'?funcname,它会弹出'在R.中的某些内容:
"编写R扩展"文档似乎并没有解决这个问题,而我能找到的唯一参考文献就是这篇博文和本次R-devel讨论.前者与一个叫做"base64"的软件包有一个断开的链接,而后者只解决了各种替代方案,比如包括R包装晕影中的图像.如果这可能与CRAN兼容将会很棒.
如何处理这个问题的任何建议将不胜感激,谢谢!
我是roxygen的新手,我很难看到如何使用它来快速创建一个新的/自定义包.
即我想知道最低要求是制作一个名为package1
using 的包devtools
,roxygen2/3
以便我可以运行命令
require(package1)
fun1(20)
fun2(20)
Run Code Online (Sandbox Code Playgroud)
分别生成2000和4000个随机法线
让我们举一个最简单的例子.
如果我有两个功能fun1
和fun2
fun1 <- function(x){
rnorm(100*x)
}
Run Code Online (Sandbox Code Playgroud)
和
fun2 <- function(y){
rnorm(200*y)
}
Run Code Online (Sandbox Code Playgroud)
params是数字,返回值是数字.我很确定这不是一个S3方法,让我们调用标题fun1和fun2 ....我不太确定我需要提供的其他信息.我可以将fun1和fun2放在单独的.R
文件中并添加abit #'
但不确定包含roxygen的所有相关要求,也不确定要包含哪些相关requiremetns以及如何使用它来创建rd文档以与包一起使用.我假设名称空间只有名称fun1和fun2?包裹描述只是一些与我有关的通用信息......以及包裹的功能?
任何一步一步的指南都会很高兴收到.
编辑:以下是我开始的距离......
我可以得到以下内容来创建一个pacakge ...但是不能使用roxygen来制作文档......
package.skeleton(list = c("fun1","fun2"), name = "package1")
Run Code Online (Sandbox Code Playgroud)
这里是我不确定我是否错过了一堆步骤......
roxygenise("package1")
Run Code Online (Sandbox Code Playgroud)
因此,当尝试安装时,我收到以下错误消息
system("R CMD INSTALL package1")
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘package1’ ...
** R
** preparing package for lazy loading
** help
Warning: /path.to.package/package1/man/package1-package.Rd:32: All text must be in …
Run Code Online (Sandbox Code Playgroud) 要生成R文档文件(.Rd
),我使用Rt 3.0.2,Linux 3.11,devtools 1.5,roxygen2 4.0.1的软件包RStudio/Document选项.
我想在文档文件中描述函数的多个参数,例如在此示例中:
\arguments{
\item{arg1, arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)
在这里,参数arg1
和arg2
由一个空格字符分割.这导致HTML版本中的自动换行符.
使用RStudio/Document选项,两个参数之间的空格将第二个参数放在"描述"部分中,例如:
#' @param arg1, arg2 Description
Run Code Online (Sandbox Code Playgroud)
会变成
\arguments{
\item{arg1,}{arg2 Description}
}
Run Code Online (Sandbox Code Playgroud)
我想出将两个参数保留在'参数'部分内的唯一方法是不按空格分割,例如:
#' @param arg1,arg2 Description
Run Code Online (Sandbox Code Playgroud)
会变成
\arguments{
\item{arg1,arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)
这是不希望的,因为有了更多的参数,带有参数的'column'会占用大量空间.我试图逃避这个空间,\
或者\\
包括所有的争论\code{...}
,但没有一个按预期工作.
有没有办法在我的目标中创建输出?也许是一些引入空间的逃脱角色?
谢谢.
斯文
在阅读了诸如关于使用Roxygen记录数据集的SO问题之后,我设法记录了一个数据集(我将其称为cells
),它现在出现在生成的列表中,data(package="mypackage")
并且如果我运行命令则会加载data(cells)
.在此之后,cells
将在ls()
运行时出现.
但是,在许多软件包中,数据可立即使用而无需data()
呼叫.此外,ls()
运行时不会显示数据名称.一个例子是baseball
随附的数据集plyr
.我查看了源代码plyr
,但我看不出这是怎么做的.
以下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"
请注意,输入中的单个反斜杠在输出中加倍.