R工作流程:如何处理手动清洁数据

时间:2012-09-21 13:21:54

标签: r

首先我要说的是,我孜孜不倦地避免使用手工清理数据来支持正则表达式等。但是,偶尔也是不可避免的。

我通常使用像Load-Clean-Func-Do工作流程这样的东西,所以这显然适合清洁阶段。但是,如果需要更新,任何手动编辑都会破坏在手工清洁之前运行这些东西的能力。

我至少可以想到三种方法来解决这个问题:

  1. 尽可能早地在工作流程中进行手动更改,以便之后的所有内容仍然可以运行。
  2. 为每次更改写出正则表达式或赋值操作。
  3. 关闭您已进行更改的电子表格后,使用为您生成(2)的工具。
  4. 2的问题在于它可能非常不合适。 3的问题是我不知道任何这样的工具存在于R. Stata有一个非常好的实现。

    所以问题是:

    • 哪个代码编写最难以复制的代码?
    • 是否存在(3)中的工具?

1 个答案:

答案 0 :(得分:8)

我同意手工清洁通常是一个相当糟糕的主意。但是,有时这是不可避免的。我建议两者之一,或两者兼而有之:

  1. 使用包含三个变量“case_id”,“variable_name”,“value”的“数据修复”保留单独的数据文件。用它来存储有关原始数据中哪些值需要替换的信息。您可以在有关清理的额外信息中添加一些其他变量(例如,为什么变量“variable_name”的值需要替换为“case_id”等的“值”等)。然后有一小段R代码,它会加载原始数据,然后使用“修复”文件中的附加信息进行清理。

  2. 也许您应该开始使用某些版本控制系统,如git或subversion(还有其他编程)。每次手工更改数据都可以作为单独的提交记录在系统中。到那天结束时,您将能够轻松地检查日志,了解您对数据所做的更改以及何时更改。此外,您将能够生成将原始数据文件转换为已清理数据文件的补丁文件。让R代码文件受版本控制也是有益的。