макрос и петли - PullRequest
       113

макрос и петли

0 голосов
/ 05 июня 2019

В моей таблице есть столбец char / string ICD9CODX, длина которого составляет 3 байта.Как показано ниже.

|ICD9CODX|
|:-------|
|410     |
|411     |
|398     |
|196     |

Я хотел бы найти / сопоставить каждую строку выше в некоторых наборах кодов, определенных как локальные макросы Stata, чтобы, если код принадлежит к набору, столбец, который отмечает наличие кодовдля этого набора создается и устанавливается значение 1, иначе 0. Локальные макросы см. ниже:

local cond_1 410 411
local cond_2 398 402 428
...
local cond_17 196 197 198 199

Таким образом, ожидаемый результат должен выглядеть следующим образом:

|ICD9CODX|condition_1|condition_2|........|condition_17|
|:-------|---------:|----------:|--------|-----------:|
|410     |         1|          0|........|           0|
|411     |         1|          0|........|           0|        
|398     |         0|          1|........|           0|
|196     |         0|          0|........|           1|

Я устал от использования циклов.Мой код ниже:

forvalues i = 1/17 {
    generate condition_`i' = 0
    foreach dx in cond_`i' {
          replace condition_`i' = 1 if strtrim(ICD9CODX) == "`dx'"
          }
}

выше, но 0 реальных изменений сделано.Что не так с кодами?

...