首先我要说的是,我孜孜不倦地避免使用手工清理数据来支持正则表达式等。但是,偶尔也是不可避免的。
我通常使用像Load-Clean-Func-Do工作流程这样的东西,所以这显然适合清洁阶段。但是,如果需要更新,任何手动编辑都会破坏在手工清洁之前运行这些东西的能力。
我至少可以想到三种方法来解决这个问题:
2的问题在于它可能非常不合适。 3的问题是我不知道任何这样的工具存在于R. Stata有一个非常好的实现。
所以问题是:
答案 0 :(得分:8)
我同意手工清洁通常是一个相当糟糕的主意。但是,有时这是不可避免的。我建议两者之一,或两者兼而有之:
使用包含三个变量“case_id”,“variable_name”,“value”的“数据修复”保留单独的数据文件。用它来存储有关原始数据中哪些值需要替换的信息。您可以在有关清理的额外信息中添加一些其他变量(例如,为什么变量“variable_name”的值需要替换为“case_id”等的“值”等)。然后有一小段R代码,它会加载原始数据,然后使用“修复”文件中的附加信息进行清理。
也许您应该开始使用某些版本控制系统,如git或subversion(还有其他编程)。每次手工更改数据都可以作为单独的提交记录在系统中。到那天结束时,您将能够轻松地检查日志,了解您对数据所做的更改以及何时更改。此外,您将能够生成将原始数据文件转换为已清理数据文件的补丁文件。让R代码文件受版本控制也是有益的。