如何从R的帮助命令中提取文本?

时间:2012-02-08 11:39:57

标签: r

  

可能重复:
  R help page as object

我能做到

temp <- help('ls')

但我无法掌握这个对象。除了打电话外,我不认为里面有很多肉吗? unclassstrattributes似乎无法领先。

我想,例如,

(1)提取Details帮助的ls部分的文字;和

(2)将所有文本提取为一个大字符串。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:6)

help本身不会返回任何有用的内容。要获取帮助文本,您可以阅读包的帮助数据库的内容,并解析它。

extract_help <- function(pkg, fn = NULL, to = c("txt", "html", "latex", "ex"))
{
  to <- match.arg(to)
  rdbfile <- file.path(find.package(pkg), "help", pkg)
  rdb <- tools:::fetchRdDB(rdbfile, key = fn)
  convertor <- switch(to, 
      txt   = tools::Rd2txt, 
      html  = tools::Rd2HTML, 
      latex = tools::Rd2latex, 
      ex    = tools::Rd2ex
  )
  f <- function(x) capture.output(convertor(x))
  if(is.null(fn)) lapply(rdb, f) else f(rdb)
}

pkg是一个字符串,给出了包的名称
fn是一个字符串,给出该包中函数的名称。如果保留为NULL,则返回该包中所有函数的帮助 to将帮助文件转换为txt,tml或其他任何内容。

使用示例:

#Everything in utils
extract_help("utils")

#just one function
extract_help("utils", "browseURL")

#convert to html instead
extract_help("utils", "browseURL", "html")

#a non-base package 
extract_help("plyr")

答案 1 :(得分:1)

help()函数有一个名为help_type的参数,它可以采用以下参数:“text”,“html”,“postscript”,“ps”和“pdf”。运行help(ls, help_type = "text")是否有助于解决您的问题?