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