2014-11-07 2 views
1

я могу получить помощь в R 3.1.2 на Yates функции от FrF2 пакета через:Получение помощи функции R с помощью help_console функции из noamtools R пакета

?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

Измените функцию 'help_console', чтобы вы могли указать пакет? – A5C1D2H2I1M1N2O1R2T1

ответ

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, я выпустил ПУЛ l просьба об изменении. Вы можете видеть это here on GitHub. Теперь он был объединен в основном репо на GitHub, поэтому вы можете установить его, как обычно.

+0

Большое спасибо @Thomas за вашу помощь. – MYaseen208