有什么有效的方法来组织R代码和输出?[关闭]


23

我正在寻找其他人如何组织其R代码和输出的输入。

我目前的做法是在文本文件的块中编写代码,如下所示:

#=================================================
# 19 May 2011
date()
# Correlation analysis of variables in sed summary
load("/media/working/working_files/R_working/sed_OM_survey.RData")
# correlation between estimated surface and mean perc.OM in epi samples
cor.test(survey$mean.perc.OM[survey$Depth == "epi"], 
    survey$est.surf.OM[survey$Depth   == "epi"]))
#==================================================

然后,我将输出粘贴到另一个文本文件中,通常带有一些注释。

此方法的问题是:

  1. 除了按日期以外,未显式链接代码和输出。
  2. 代码和输出是按时间顺序组织的,因此可能很难搜索。

我考虑过使用所有内容制作一个Sweave文档,因为那时我可以制作目录,但这似乎比它提供的好处更麻烦。

让我知道您用于组织R代码和输出的任何有效例程,这些例程将有助于有效地搜索和编辑分析。


2
只是为了避免复制/粘贴,sink()否则capture.output()可能是您的朋友。值得考虑的报告实用程序,例如HmiscSweavebrew(您的要点1)。版本控制系统(rcssvngit)可能对第2点有所帮助
。– chl

@chl-感谢您的建议。我不知道 sink()capture.output()。那很棒。
DQdlM 2011年

1
今天也有针织衫!
kjetil b halvorsen

Answers:


22

您不是第一个问这个问题的人。


+1,并且您提供的第一个链接在其中引用了一个线程:-)
chl

@chl谢谢!我想知道这个问题是否重复,应该关闭...
Bernd Weiss

是的,IMO。但是,由于没有关闭票,我不愿意关闭它。此外,年龄较大的对象更为笼统,但过去已经解决了一个非常类似的问题。让我们拭目以待吧。
chl

谢谢你的清单!这非常有用。我以为我不是第一个提出这个问题的人,但是我的搜索(显然是无效的)似乎并没有发现太多。
DQdlM 2011年

6

我将每个项目或分析的所有内容组织成4个文件。(1)“代码”,用于存储R函数的文本文件。(2)'sql'保留用于收集数据的查询的位置。(3)'dat'我保存原始数据和处理后数据的副本(通常为csv)的地方。(4)“ rpt”,用于存储分发的报告。

我所有的文件都使用非常冗长的名称命名,例如“ analysis_of_network_abc_for_research_on_modified_buffer_19May2011”

我还预先写了详细的文档,在其中组织了假设,任何假设,包括和排除标准,以及为达到可交付成果而打算采取的步骤。所有这些对于可重复的研究都是无价的,并使我的年度目标设定过程变得更加容易。


2

现在,我已切换到Sweave,我再也不想回头了。尤其是当您将图作为输出时,跟踪用于创建每个图的代码要容易得多。这也使在开始时更容易纠正一件小事并使它在输出中引起波动,而无需手动重新运行任何东西。


1
编织很棒。这需要一些时间来适应,但是如果您已经了解TeX和R,那么它是显而易见的选择。它还使您不必再花费时间来对齐表列,这很好。
richiemorrisroe 2011年

感谢您的输入。我对Sweave的2个担心是:1)我将在目录中保存大量的文件-特别是包含大量数字,以及2)我将必须非常小心地使用代码,以防止每次编译整个文档时都出现打ic (例如,我认为加载了某些东西而没有加载)。你有这些问题吗?
DQdlM 2011年

1)如果需要,您可以选择删除中间文件;我使用的是Sweave.sh脚本(cran.r-project.org/contrib/extra/scripts/Sweave.sh),它会自动执行;虽然可以轻松关闭。如果这样做,请确保在使用它之前知道要删除的内容,以防止可能的灾难。简短的版本是,如果没有文件共享Rnw文件的基本名称,则可以。
亚伦-恢复莫妮卡

2)我认为,以这种方式谨慎是一件好事,有时会出于确切的目的编译我的Sweave文档,即确保我正确地跟踪了重新创建Sweave文档所需的一切。分析。
亚伦-恢复莫妮卡

1
@ naught101:对于长时间的分析,我会单独运行它,并将结果通常保存在.RData文件中,以供Sweave文档输入。但是,还有一些很棒的选项可以“缓存”代码块中的结果,因此不会重新运行。
亚伦-恢复莫妮卡2012年

2

为了构造单个.R代码文件,您还可以使用strcode(我创建的RStudio插件)来插入代码分隔符(带有可选标题)并基于它们-获取代码文件的摘要。我将在此博客文章中更详细地解释其用法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.