14

如果我加载data(mtcars)它,它会附带一个非常简洁的密码本,我可以使用?mtcars.

我有兴趣以同样的方式记录我的数据,此外,将那个整洁的密码本保存为 pdf。

是否可以保存“内容”?mtcars以及它是如何创建的?

谢谢,埃里克

PS我确实读过这个帖子

更新 2012-05-14 00:39:59 PDT

我正在寻找仅使用 R 的解决方案;不幸的是,我不能依赖其他软件(例如 Tex)

更新 2012-05-14 09:49:05 PDT

非常感谢大家的许多回答。

阅读这些答案后,我意识到我应该更清楚我的优先事项。因此,这里列出了我在这个问题上的优先事项。

  1. R,我正在寻找一个完全基于 R 的解决方案。
  2. 重现性,即代码本可以是自动化脚本的一部分。
  3. 可读性,文本应该易于阅读。
  4. 可搜索性,可以用任何标准软件打开并搜索的文件(这就是为什么我认为 pdf 会是一个很好的解决方案,但这被 1 到 3 否决了)。

我目前正在使用 Hmisc 包中的变量标记我的变量,最终可能会使用同一个包中label()的 .txt 码本。Label()

4

5 回答 5

6

(我不完全确定你在追求什么,但是):

  • 与其他软件包文档一样,该文件mtcars是一个 .Rd 文件。您可以将其转换为除 pdf 之外的其他格式 (ASCII),但生成 pdf 的常用方法确实使用 pdflatex。

  • 但是,此类 .Rd 文件中的大多数信息或多或少都是手工编写的(除非您使用另一个 R 包,如 roxygen/roxygen2 帮助您自动生成其中的一部分。

  • 对于用户数据,通常 Noweb 更方便。
    .Rnw -Sweave-> -> .tex -pdflatex-> pdf 无疑是此类文件最常用的方式。但是,您可以将它与 Openoffice (如果已安装)一起使用,或者将它与纯 ASCII 文件一起使用而不是 TeX。

  • 看看knitr使用纯 ASCII 文件可能更容易的包。(我不是专家,只是从 切换Sweave

  • 如果 html 是一个选项,则两者都Sweave可以knitr使用。

于 2012-05-14T12:21:17.200 回答
4

我不知道如何获取单个数据集的 pdf,但您可以datasets使用以下方法从 LaTeX 版本构建整个包的 pdf:

path <- find.package('datasets')
system(paste(shQuote(file.path(R.home("bin"), "R")),"CMD", 
    "Rd2pdf",shQuote(path)))

我不确定这一点,但只有拥有某种 LaTeX 程序(如 MikTex)才有意义。此外,我不确定这将如何在不同的操作系统上工作,因为我的是 windows,这对我有用。

PS这只是您问题的部分答案,因为您想为您的数据执行此操作,但如果没有别的,它可能会让球滚动。

于 2012-05-14T02:58:33.423 回答
2

输入时显示的帮助页面是?mtcars从 .Rd 文件生成的,该文件是一个类似 LaTeX 的文件,用于所有 R 的帮助页面。尽管 .Rd 文件与 LaTeX 类似,但您实际上并不需要知道 LaTeX 来读取或写入它们。实际的 mtcars.Rd 文件可在此处获得:http ://commondatastorage.googleapis.com/jthetzel-public/mtcars.Rd ,可以使用任何文本编辑器查看。

安装包时,包的 ./man 目录中包含的 .Rd 文件会转换为 .html 文件。它们由“工具”包中的函数转换。如果您想要?mtcars数据集的功能,您需要为它们创建一个包。如果您以前从未创建过包,这听起来可能很复杂,但它很容易学习,并且会让您成为更好的 R 程序员。CRAN 上有许多仅数据集包的示例,例如 msProstate:http ://cran.r-project.org/web/packages/msProstate/index.html 。考虑下载包源以查看它的组织方式。

有关创建自己的包、编写 .Rd 文件和构建包的更多信息: http ://cran.r-project.org/doc/manuals/R-exts.html ,尤其是“1.1.5 包中的数据”。

编辑

如果您想将包中的 .Rd 文件转换为 .pdf,您可以在构建包时执行此操作,但您需要一个 LaTeX 编译器。如果您使用的是 Windows,请参见此处:http ://cran.r-project.org/bin/windows/Rtools/ 。

于 2012-05-14T12:24:44.830 回答
2

您不能仅使用 R 创建 PDF;您需要使用其他创建 PDF 的软件。

您可以使用 、 和简单自定义函数的组合utils::promptDatatools::Rd2HTML用户浏览器中打开创建的 HTML 文件。

只制作一个包含您的数据集的包可能会更容易。以“数据集”包为例。

于 2012-05-14T16:55:22.830 回答
1

看起来,如果你想生成 pdf,总是需要像 LaTeX 这样的外部工具。我建议使用简单的 ASCII 文本格式来生成这样的文件。原则上 .Rd 文件也是 ASCII 文本,但我发现它们的可读性并不高。

相反,我建议使用纯文本 ASCII 格式,例如 Markdown(例如在 StackOverflow 上使用)来编写文本文件。这样的文件已经比 .Rd 格式的文件更具可读性,而且如果您以后选择这样做,它可以很容易地处理成 PDF。我认为该knitr软件包能够从 Markdown 源生成 PDF 文件。此外,knitr允许您在 Markdown 文本中混入 R 代码。可以评估此​​代码并将结果(偶数)添加到生成的 PDF 中。

在实践中,您可以使用sprintf生成可以通过管道传输到文件的字符向量,以便动态生成降价文本。只需编写一次模板,然后标记稍后要添加的文本的位置,如下所示:

base_text = "
First header
============

This document was generated on %s, by %s.
"
text_forfile = sprintf(text, some_date, some_name)

只需将文本转储到text_forfile文件中即可.md完成,无需外部工具。有关如何将文本转储到文件的信息,请参阅SO 上的这篇文章。

于 2012-05-14T12:32:27.877 回答