#variables #stata
#переменные #stata
Вопрос:
Я ищу способ создать фиктивную переменную, которая проверяет переменную с именем text на соответствие нескольким заданным подстрокам, таким как «книга, покупка, путешествие».
Теперь я хочу проверить, есть ли в наблюдении book, buy или journey . Если в подстроке найдено одно из этих ключевых слов, то фиктивной переменной должно быть 1, в противном случае 0. Пример:
TEXT
Book your tickets now
Swiss is making your journey easy
Buy your holiday tickets now!
A touch of Austria in your lungs.
Желаемый результат должен быть
dummy variable
1
1
1
0
Я попробовал это с помощью strpos, а также регулярных выражений с очень ограниченными результатами.
С уважением,
Йохи
Ответ №1:
Использование strpos
может быть утомительным, потому что вы должны учитывать капитализацию, поэтому я бы использовал регулярные выражения.
* Example generated by -dataex-. To install: ssc install dataex
clear
input str33 text
"Book your tickets now"
"Swiss is making your journey easy"
"Buy your holiday tickets now!"
"A touch of Austria in your lungs."
end
generate wanted = regexm(text, "[Bb]ook|[Bb]uy|[Jj]ourney")
list
Результат:
. list
--------------------------------------------
| text wanted |
|--------------------------------------------|
1. | Book your tickets now 1 |
2. | Swiss is making your journey easy 1 |
3. | Buy your holiday tickets now! 1 |
4. | A touch of Austria in your lungs. 0 |
--------------------------------------------
Смотрите также эту ссылку для получения информации о регулярных выражениях.