【发布时间】:2013-11-19 20:57:54
【问题描述】:
这件事让我困惑了一段时间,我还没有找到答案。
我的情况是,我正在对(据说)类似结构的文件应用标准化的数据清理流程,每年一个文件。我有如下声明:
replace field="Plant" if field=="Plant & Machinery"
这是基于第一年的数据文件编写的原始代码的结果。然后我将代码概括为循环遍历这些年的数据。如果在第 3 年,该变量中的类似值被编码为 "Plant and MachInery ",那么问题就变成了,这样由于文本字符串的差异,上面的代码行不会进行预期的更改,但不会导致错误警告没有做出改变。
我所追求的是某种确认 >0 观察实际上满足每个实例代码在循环中执行的条件,否则返回错误。修剪、删除空格和标准化文本大小写的任何组合都不是解决方法选项。同时,我不想在每个条件 replace 之前添加 count if 和 assert 语句,因为这会变得非常庞大。
除了查看原始文件以确保变量值是标准化的之外,还有什么方法可以像我试图描述的那样“即时”进行验证?也许只是编写一个自定义程序,结合count if、assert 和replace?
【问题讨论】:
标签: validation loops replace stata