如果我加载data(mtcars)
,它会附带一个非常简洁的代码簿,我可以使用?mtcars
调用它。
我有兴趣以相同的方式记录我的数据,并且将整齐的码本保存为pdf。
是否可以保存?mtcars
的'内容'以及如何创建?
谢谢,Eric
P.S。我读过this thread。
我正在寻找仅使用R的解决方案;不幸的是,我不能依赖其他软件(例如Tex)
非常感谢大家的答案。
阅读这些答案,我意识到我应该让我的优先事项更加清晰。因此,这里列出了我对这个问题的优先顺序。
我目前正在使用Hmisc软件包中的label()
标记我的变量,最终可能会使用Label()
从同一个软件包中编写.txt代码簿。
答案 0 :(得分:6)
(我不完全确定你在追求什么,但是):
与其他包文档一样,mtcars
的文件是.Rd文件。您可以将其转换为其他格式(ASCII)而不是pdf,但生成pdf的常用方法确实使用pdflatex。
但是,这样的.Rd文件中的大多数信息都是手工编写的(除非你使用另一个像rxygen / roxygen2这样的R软件包来帮助你自动生成部分信息。
对于用户数据,通常Noweb更方便。
.Rnw -Sweave-> - > .tex -pdflatex-> pdf肯定是这种文件最常用的方式。
但是,您可以使用它,例如使用Openoffice(如果已安装)或使用纯ASCII文件而不是TeX。
查看使用纯ASCII文件可能更容易的包knitr
。 (我不是专家,只是从Sweave
切换
如果html是一个选项,则Sweave
和knitr
都可以使用。
答案 1 :(得分:4)
我不知道如何获取单个数据集的pdf,但您可以使用以下命令从LaTeX版本构建整个datasets
包的pdf:
path <- find.package('datasets')
system(paste(shQuote(file.path(R.home("bin"), "R")),"CMD",
"Rd2pdf",shQuote(path)))
我不确定这一点,但只有你必须拥有像MikTex这样的LaTeX程序才有意义。此外,我不确定这将如何在不同的操作系统上工作,因为我的是Windows,这对我有用。
PS这只是对你的问题的部分答案,因为你想为你的数据做这个,但如果没有别的,它可能会让球滚动。
答案 2 :(得分:2)
输入?mtcars
时显示的帮助页面是从.Rd文件生成的,该文件是一个类似LaTeX的文件,用于所有R的帮助页面。虽然.Rd文件类似于LaTeX,但实际上并不需要知道LaTeX来读取或写入它们。实际的mtcars.Rd文件可在此处获取:http://commondatastorage.googleapis.com/jthetzel-public/mtcars.Rd,可以使用任何文本编辑器查看。
。安装包时,包的./man目录中包含的.dd文件将转换为.html文件。它们由“tools”包中的函数转换。如果您希望数据集具有?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/。
答案 3 :(得分:2)
您无法仅使用R创建PDF;您需要使用其他创建PDF的软件。
您可以使用utils::promptData
,tools::Rd2HTML
和一个简单的自定义函数的组合在用户的浏览器中打开创建的HTML文件。
制作包含数据集的包可能更容易。请查看“数据集”包中的示例。
答案 4 :(得分: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
文件即可完成,无需外部工具。有关如何将文本转储到文件,请参阅this post on SO。