用高度相似的观察结果清理变量

时间:2014-11-05 22:00:56

标签: dataset stata data-cleaning

所以我在Stata中有一个数据集,它有一个名为“程序描述”的变量,它具有非常相似的观察结果,尽管观察结果并不遵循任何模式。我的目标是清理变量,以便非常相似的观察结果具有相同的名称。

以下是变量的示例:

Variable Name

phys ed
physical education
phys ed k-12
learning disabilities
learn dis
learn disable

因此,我希望前三个被称为“物理”(或其衍生物),后三个被称为“学习障碍”

我一直在使用函数strpos()来替换包含某些短语的观察,但由于变量有100k观测值和许多不同的名称,这需要一段时间。

1 个答案:

答案 0 :(得分:3)

您可以使用SSC中的strgroup,但它不太可能让您一路走来。例如,这似乎有效:

. strgroup string , gen(group) threshold(.7) normalize(longer)

. list, clean noobs

                   string   group  
                  phys ed       1  
       physical education       1  
             phys ed k-12       1  
    learning disabilities       2  
                learn dis       2  
            learn disable       2  

但是,“物理”将使用这些设置映射到组1。另请注意,此命令区分大小写,因此首先对大写/小写进行操作可能有意义。阈值实际上是一种调整参数。

对于Google/Open Refine我也遇到过这些问题。这称为和解。

通过所有这些方法,一些标准化有很长的路要走。