MS Word跟踪更改和RMarkDown

时间:2016-03-11 16:53:36

标签: r r-markdown

我尝试使用R Markdown编写所有数据分析报告,因为我可以拥有一个可重现的文档,我可以用几种输出格式(Pdf,html和MS Word)共享。

但是,我的大多数同事都使用MS Word,他们不知道R,Markdown等。

使用R Markdown的一个优点是我可以在MS Word中生成报告并直接与同事共享。

缺点是协作对我来说变得很麻烦,因为我也收到了关于MS Word的反馈(通常使用跟踪更改),我必须手动将这些更改重新引入.rmd文件。

所以,我的问题是:如何简化将MS Word文档中的更改导入.Rmd的过程(即尽可能自动化)?

那里有什么工具可以帮助我吗?

P.s.getting我的同事成为R-literate不是一个选择:(

4 个答案:

答案 0 :(得分:5)

我还没有尝试过我提出的建议,但这就是我计划如何处理这个问题,因为我有完全相同的需求。首先,有两种不同的情况:

  1. 我是第一作者,或者我负责统计分析:我会要求所有合作者学习并使用降价(不是降价促销,只是通用降价)而且我会这样做指示他们不要触摸任何R代码。我相信降价很容易,任何有能力在数据分析的文章上合作的人都有能力学习降价。对于教授它们,熟悉使用Microsoft Word和跟踪更改的人员的主要功能如下:
    • 基本降价参考:我会向他们提供核心R Markdown参考,这些参考是他们的Pandoc Markdown文档及其R Markdown cheat sheet
    • 跟踪更改:协作者只需以纯文本格式编辑降价并提交其编辑后的版本。要查看和协调差异,我只需使用差异工具;我会找到一个很好的在线版,教我的合作者如何区别变化。
    • 作者之间的评论:我会选择其中一个options for markdown comments并教我的合作者在需要时使用它。修改后的HTML评论(<!--- Pandoc-enhanced HTML comment -->)是我可能会使用的评论。
    • 参考管理:我使用Zotero,因此我会使用Better BibTeX for Zotero来处理引用。关于这一点的好处是虽然我自己必须处理引用,但协作者可以直接添加对Zotero组库的引用。事实上,使用引文键,协作者应该很容易学习如何将引用本身插入到降价文本中。
  2. 我不是主要作者,我不负责统计分析:我会使用主要作者使用的任何工作流程(例如,如果主要作者使用带有跟踪更改的Word,我&#39 ; ll使用相同的东西)。
  3. 我想要注意的是,似乎唯一似乎不那么容易的部分(与Microsoft Word正常工作功能相比)正在用diff替换轨道更改。我不知道一个工具可以让diff文件合并就像Word协调更改一样简单,但是如果存在这样的工具,那么这个过程应该更加无缝。

答案 1 :(得分:3)

我相信我们需要处理多个软件包才能在Word和RMarkdown的用户之间实现真正的协作。我很乐意与任何有兴趣实现这一目标的人合作。

  1. 为RStudio添加CriticMarkup插件。 https://github.com/CriticMarkup/CriticMarkup-toolkit/

  2. 拥有一个R包,可以抓取Word文档以及跟踪的更改。官员包已经可以读取Word文档,但不能读取跟踪的更改。如果这个软件包可以向擦除添加简单的RMarkdown格式,例如,这将非常有用。用于粗体,下标甚至表格,以便于后续将Word文本与RMarkdown文件进行匹配。 https://github.com/davidgohel/officer/issues/132

  3. 编写一个包,可以将已删除的Tracked更改转换为CriticMarkup到RMarkdown文件中。

    • 生成一个键(段落) - &gt;(行),用于将从Word中删除的段落(没有任何跟踪的更改)与RMarkdown中的行匹配。问题是我们不知道使用代码生成了什么,以及直接写为Rmd的内容。第一步是在RMarkdown文件中找到应该形成段落的行(排除R块,但不是内联R)。然后,确保顺序保持不变,将这些行(删除换行符)与从Word文档中删除的段落进行比较,在内联r块的位置使用“任何字符,任意长度”的正则表达式符号。接下来,将带有内联块的段落拆分为子段落,以便能够更轻松地在内联块之前或之后将跟踪的更改和注释应用于内联代码。最后,无法匹配的段落可能是在代码块中生成的,应该与相应的代码块匹配,这些代码块是从段落的顺序确定的。

    • 使用生成的密钥,将跟踪的更改(作为CritcMarkup)应用于RMarkdwown文件。对代码块所做的任何更改都应该报告为围绕该代码块的CrticMarkup注释(如果块之间没有标记,则报告代码块组)。

答案 2 :(得分:1)

我知道这是一篇旧文章,但是对于将来的提问者,现在有一个可以(主要)执行此操作的软件包:

{redoc} package可以输出到Word,通过将R代码内部存储在Word文档中,它还可以@Configuration @EnableTransactionManagement @EnableJpaRepositories( basePackages = { "br.com.brb.maf.pix.transacao.repository" }, entityManagerFactoryRef = "gpiEntityManagerFactory") @Profile("autoContido") 将Word文件返回RMarkdown。它使用另一个答案中讨论的Critic Markup语法。

答案 3 :(得分:1)

我建议你试试trackdown https://ekothe.github.io/trackdown/

trackdown 为协作编写和编辑 R Markdown(或 Sweave)文档提供了一个简单的答案。由于易于阅读的 Markdown(或 LaTeX)语法和众所周知的通过 Google Docs 提供的在线界面,协作者可以轻松地为文档叙述部分的编写和编辑做出贡献。整合所有作者的贡献后,可以下载最终文档并在本地渲染。

使用 Google Docs,任何人都可以协作处理文档,因为不需要编程经验,他们只需要专注于叙述性文本而忽略代码术语。

此外,您可以隐藏代码块设置 trackdown(下载时会自动恢复)。这可以防止协作者无意中对可能损坏文件的代码进行更改,并且允许协作者只关注叙述性文本而忽略代码术语。

您还可以将实际输出(即生成的编译文档)与 .Rmd(或 .Rnw)文档一起上传到 Google Drive。这有助于协作者评估整体布局、图形和表格,并允许他们使用 pdf 上的评论来提出和讨论建议。