2014-11-05 5 views
1

Итак, у меня есть набор данных в Stata, который имеет переменную, называемую «описание программы», которая имеет очень похожие наблюдения, хотя наблюдения не следуют ни одному шаблону. Моя цель - очистить переменную, чтобы похожие наблюдения были одинаковыми.Очистка переменной с очень похожими наблюдениями

Вот пример того, что переменные выглядят следующим образом:

Variable Name 

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

Поэтому я хотел бы, чтобы первые три просто назвать «Phys ред» (или производной от этого), и последних трех просто называются «недостатками обучения»

Я использовал функцию strpos(), чтобы заменить наблюдения, содержащие определенные фразы, но поскольку переменная имеет наблюдения 100 тыс. и множество разных имен, это занимает некоторое время.

+0

Это произошло несколько раз на www.statalist.com. Я бы искал ответы, предоставленные там, так как было предложено довольно много решений. К сожалению, я не могу предоставить какие-либо ссылки на данный момент. –

+0

Я везде искал информацию и не нашел ничего полезного, поэтому, если вы найдете какие-либо ссылки, дайте мне знать. – Pcarlitz

+0

http://www.stata.com/statalist/archive/2013-11/msg01209.html и http://www.stata.com/statalist/archive/2012-03/msg01135.html и http: // www .stata.com/statalist/archive/2004-02/msg00246.html и http://www.statalist.org/forums/forum/general-stata-discussion/general/754-repeated-names-in-a-string -variable-but-some-have-typos-how-to-correct и в целом: https://www.google.com/search?q=statalist+%2B+string+match&gws_rd=ssl#q=statalist+%2B+ fuzzy + string + –

ответ

3

Вы можете использовать strgroup от SSC, но вряд ли вы окажетесь здесь. Например, это работает:

. 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 с этими проблемами. Это называется примирением.

При всех этих подходах стандартизация проходит долгий путь.

+0

Я так долго искал такую ​​команду ... спасибо! – Pcarlitz

+0

@Pcarlitz Если это сработает для вас, выберите ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^