标签: roxygen

在for循环中生成markdown注释

我正在尝试使用knitr基于具有for循环的R脚本生成HTML报告.我想从for循环中的注释生成markdown注释,但我不确定它是否可行.

这是一个简单的例子,这是在test.R中:

for (i in 1:5) {
    ## This is a heading for `i`
    #' This is a comment for `i`
    print(i)    
}
Run Code Online (Sandbox Code Playgroud)

然后我用spin来生成一个Rmd文件:spin('test.R')

但是,Rmd文件如下所示.

```{r }
for (i in 1:5) {
    ## This is a heading for `i`
    #' This is a comment for `i`
    print(i)    
}
```
Run Code Online (Sandbox Code Playgroud)

R块中的markdown注释不会编译为HTML.可能吗?

谢谢,彼得

markdown r roxygen knitr

16
推荐指数
3
解决办法
1万
查看次数

如何在roxygen literate编程中逃脱%?

我的函数的参数的默认值包含"%".这似乎是roxygen的一个问题,它会产生很多警告,并且在尝试构建乳胶文档时R CMD检查失败.

如何使此功能(及其文档)有效?使用%%或\%代替%无济于事.

#' Test escape \% from in-source documentation (roxygen).
#'
#' What happens when parameters contain special latex characters? 
#'
#' @param x unsuspicious parameter 
#' @param format sprintf format string (default "\%5.0f")
#'
#' @return formatted string
#' @export
#' @author Karsten Weinert
testroxy <- function(x, format = "%5.0f") {
  sprintf(format,x)
}
Run Code Online (Sandbox Code Playgroud)

r literate-programming roxygen

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

通过Roxygen添加useDynLib

我正在通过roxygen2包转换我的包以使用roxygen文档.现在我的包没有加载,我认为这是因为缺少来自NAMESPACE文件的useDynLib(mypackage)调用.我该如何生成这个?

r documentation-generation roxygen roxygen2

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

如何使用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
查看次数

使用roxygen2的R包中的源子目录

我想在R文件夹中使用目录结构来获取包的源代码.例如,在我的R文件夹中,我有一个algos文件夹,其中包含我要导出和记录的功能.但是roxygen2,默认情况下似乎没有通过该文件R夹的子文件夹.

我试图@include在`R/algos/algo1.r'的文件中使用如下关键字

#' @include algos/algo1.r
Run Code Online (Sandbox Code Playgroud)

但没有成功.是否有一种简单的方法可以将子文件夹用于R源代码?

documentation r package roxygen

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

如何使用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包的HTML帮助页面中的数字(R代码执行结果)

在R中编写包时,可以以Rd格式创建帮助页面,然后将它们转换为HTML页面.如果帮助页面包含示例代码,则会在"示例"部分中打印.

例如,包"stats"的函数"prcomp"有两个页面:

  1. 仅示例代码:http://stat.ethz.ch/R-manual/R-patched/library/stats/html/prcomp.html
  2. 示例代码+数字结果:http: //rgm2.lab.nig.ac.jp/RGM2/R_man-2.9.0/library/stats/man/prcomp.html

问题是如何生成R代码执行的结果,特别是包括输出数字?这对应于"结果"部分.

我使用以下命令将Rd转换为HTML:

R CMD Rdconv -t html $rdfile > $rdname.html
Run Code Online (Sandbox Code Playgroud)

这称为R函数http://stat.ethz.ch/R-manual/R-devel/library/tools/html/Rd2HTML.html.

我将不胜感激任何意见或建议.谢谢.

r package roxygen

11
推荐指数
1
解决办法
445
查看次数

加速氧气

R CMD roxygen在大包装上运行可能需要相当长的时间.它显然是低效的,无论自上次roxygen调用后文件是否发生变化,它都会经历所有事情.

关于如何加快速度的任何提示?

r roxygen

11
推荐指数
1
解决办法
209
查看次数

使用roxygen2:反斜杠处理示例文件是重复的(\ dontrun变为\\ dontrun)

实际问题

如何避免\dontrun{在包含示例的单独文件\\dontrun{,在roxygenizing后在相应的Rd文件中?

我找到了一个解决方法,但感觉好像我可能只是错过了一些明显的东西,即一些设置roxigenize().

细节

我想我注意到一个可能的错误,或者,恕我直言,至少在处理使用roxygen2的示例时存在于一个单独的文件中的不良行为(而不是在实际的roxygen代码中说明它).

问题是,\dontrun{各个示例文件\\dontrun{中的行在roxygenizing后变为生成的Rd文件.

您可以在下面找到行为的说明以及简单的解决方法

1)确保目录

dir.create("src", recursive=TRUE, showWarnings=FALSE)
dir.create("package", recursive=TRUE, showWarnings=FALSE)

# Ensure empty package directory
subdirs <- list.files("package", full.names=TRUE)
if (length(subdirs)) {
    sapply(subdirs, unlink, recursive=TRUE)
}
Run Code Online (Sandbox Code Playgroud)

2)使用两种不同的嵌入示例的方式创建示例函数

foo1 <- function(x) {message("I'm foo #1"); return(TRUE)}
roxy.1 <- c(
    "#' Title foo1()",
    "#'", 
    "#' Description foo1().",
    "##' This line is commented out",
    "#'", 
    "#' @param x Some R object that …
Run Code Online (Sandbox Code Playgroud)

r roxygen roxygen2

11
推荐指数
1
解决办法
2010
查看次数