2011-09-21 45 views
12

我希望能够从内R. 在命令行下写的作品中的R到文件中的帮助文件的内容:如何将帮助的内容写入R中的文件?

  • R --slave -e 'library(MASS); help(survey)' > survey.txt
    • 该命令写为调查数据文件帮助文件
    • --slave皮既初始提示和所得从 输入的命令输出
    • -e '...'发送命令至R
    • > survey.txt R的输出写入到文件

然而,这似乎并没有工作:

library(MASS) 
sink("survey.txt") 
help(survey) 
sink() 
  • 我怎样才能帮助文件的内容保存到R内的文件?
+0

你应该能够做的比这更好。R本身现在正在处理Rd标记,所以**必须是'tools'和其他基本R包中的解析器和转换器。 –

+1

与[R help page as object]相关(http://stackoverflow.com/questions/8918753/r-help-page-as-object)。 –

回答

15

看起来你需要的两个功能是tools:::Rd2txtutils:::.getHelpFile。这会将帮助文件打印到控制台,但是您可能需要摆弄参数以使其以您想要的方式写入文件。

例如:

hs <- help(survey) 
tools:::Rd2txt(utils:::.getHelpFile(as.character(hs))) 

由于这些功能目前未出口的,我劝你不要依靠它们用于任何生产代码。用它们作为创建自己的稳定实现的指南会更好。

3

尽管Joshua的指示很完美,但我偶然发现了另一种保存R帮助文件的策略;所以我想我会分享它。它适用于我的电脑(Ubuntu),其中less是R的寻呼机。它基本上只涉及从less保存文件。

  • help(survey)
  • 然后按照these instructions保存less缓冲到文件
    • 即类型g|$tee survey.txt
      • g转到少缓冲区的顶部,如果你是不是已经有
      • |从当前标记开始的范围之间的管道文本
      • ,并在$结束指示缓冲
      • 的shell命令tee允许标准输出的末尾将被发送到一个文件