Я хочу найти в Stata C00-D49 и пометить их как новообразования.
я мог бы сделать
gen neo =1 if strmatch(diagnosis, "C*")
Но не знаю, как сделать поиск строки ограниченным только до D49.
Кроме того, мне нужно пометить O00-O9A как беременность.
Я также могу сделать следующее:
gen neo =1 if strmatch(diagnosis, "D1*")
gen neo =1 if strmatch(diagnosis, "D2*")
gen neo =1 if strmatch(diagnosis, "D3*")
gen neo =1 if strmatch(diagnosis, "D4*")
Но есть ли способ выполнить сопоставление строк для заданного диапазона?





Как я понимаю коды МКБ организованы, они все в алфавитном порядке. Вам не нужно искать какие-либо строки, просто сравните их по алфавиту следующим образом:
* Example generated by -dataex-. For more info, type help dataex
clear
input str7 diagnosis
"ABB"
"A12"
"C34"
"D49.512"
"O02"
"Q34"
"C00.2"
end
gen neoplasm = (diagnosis >= "C00" & diagnosis < "D50")
gen pregnancy = (diagnosis >= "O00" & diagnosis < "P")