如何在R中将帮助内容写入文件?

12

我希望能够在R中将帮助文件的内容写入文件。以下命令行代码有效:

  • R --slave -e 'library(MASS); help(survey)' > survey.txt
    • 该命令会将survey数据文件的帮助文件写入
    • --slave 隐藏了初始提示和输入的命令的输出结果
    • -e '...' 将命令发送到R
    • > survey.txt 将R的输出写入文件survey.txt

然而,以下尝试并不起作用:

library(MASS)
sink("survey.txt")
help(survey)
sink()
  • 如何在 R 中将帮助文件的内容保存到文件中?

你应该能做得比这更好。R本身现在正在处理Rd标记,因此tools和其他基本R包中必须有解析器和转换器。 - Dirk Eddelbuettel
1
关于R帮助页面作为对象的内容。 - Joshua Ulrich
2个回答

18

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

比如:

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

由于这些函数目前未被导出,我不建议您在任何生产代码中依赖它们。最好将它们用作创建自己稳定实现的指南。


3
虽然 Joshua 的指示完美无缺,但我发现了另一种保存 R 帮助文件的策略;所以我想分享一下。它在我的电脑上(Ubuntu)运行良好,其中 less 是 R 分页器。它基本上只涉及从 less 中保存文件。
  • help(survey)
  • 然后按照这些说明less 缓冲区保存到文件中
    • 即输入 g|$tee survey.txt
      • g 跳转到 less 缓冲区的顶部(如果你还没有在那里)
      • | 将文本管道传递到当前标记开始的范围之间
      • 并以 $ 结尾,表示缓冲区的末尾
      • 通过 shell 命令 tee 允许将标准输出发送到文件中

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接