我可以通过R 3.1.2
软件包Yates
函数FrF2
获取帮助:
?FrF2::Yates
现在,我希望通过.tex
包中的help_console
函数获得noamtools R
格式的帮助。我尝试了这段代码但没有工作:
help_console(topic="Yates", format = "latex")
和
help_console(topic="FrF2:Yates", format = "latex")
使用以下命令 noamtools R package can be obtained from
github`:
library(devtools)
install_github("noamtools", "noamross")
library(noamtools)
任何帮助都将受到高度赞赏。感谢
答案 0 :(得分:3)
此处的问题出在基础包help
的函数utils
中。您有两个包都导出具有相同名称的函数。具体来说,DoE.base
和FrF2
都导出Yates
,因此help
不会加载Rd文件;相反,它希望您在不同的文件之间进行选择。但help_console
不知道如何处理这个问题。这可以通过向package
添加help_console
参数来轻松纠正,该参数将包名称传递给help
。要在特定的R会话中创建实现此功能,您可以使用:
fixInNamespace("help_console", "noamtools")
加载脚本编辑器,您可以在其中将help_console
的定义更改为以下内容:
function (topic, format = c("text", "html", "latex", "Rd"), lines = NULL,
before = NULL, after = NULL, package = NULL)
{
format = match.arg(format)
if (!is.character(topic))
topic <- deparse(substitute(topic))
helpfile = utils:::.getHelpFile(help(topic, package = (package)))
hs <- capture.output(switch(format, text = tools:::Rd2txt(helpfile),
html = tools:::Rd2HTML(helpfile), latex = tools:::Rd2latex(helpfile),
Rd = tools:::prepare_Rd(helpfile)))
if (!is.null(lines))
hs <- hs[lines]
hs <- c(before, hs, after)
cat(hs, sep = "\n")
invisible(hs)
}
这将允许您单独捕获函数的每个版本的文档:
str(capture.output(help_console(topic="Yates", format = "latex", package="FrF2")))
## chr [1:139] "\\HeaderA{utilitiesCat}{ \\textasciitilde{}\\textasciitilde{} Internal utility functions and a user-visible constant for workin"| __truncated__ ...
str(capture.output(help_console(topic="Yates", format = "latex", package="DoE.base")))
## chr [1:65] "\\HeaderA{block.catlg3}{Catalogues for blocking full factorial 2-level and 3-level designs, and lists of generating columns fo"| __truncated__ ...
为了将其纳入noamtools
,我发出了拉动请求,要求对其进行更改。你可以看到它here on GitHub。它现在已经在GitHub上的主回购中合并,所以你可以像往常一样安装。