У меня очень большой набор данных множественных диагнозов (25) на пациента, представленный кодами ICD 10 в SPSS.Для краткости я опубликовал снимок того, что я пытаюсь воспроизвести, просто используя набор тестовых данных из 3 строковых переменных, помеченных от DIAG1 до DIAG3, и случайных кодов.
Предположим, что каждая строка представляет пациента.Результат, представленный в столбце «O74», является тем, что я пытаюсь воспроизвести, но пока безрезультатно (просто вручную введите то, что я хочу воспроизвести с помощью синтаксиса).По существу, дихотомическая переменная присутствия / отсутствия, где «1» представляет пациента с диагнозом «O74» в любом из столбцов «DIAG».Я попытался:
do repeat x = DIAG1 to DIAG3.
compute O74 = any(x,"O74001", "O74019").
end repeat.
EXECUTE.
Тем не менее, после запуска синтаксиса, появляется только два приведенных выше кода в DIAG3.Учитывая мои невероятно слабые навыки синтаксиса, я не могу понять, почему частота O74001 и O74019 в DIAG1 и DIAG2 не включена в переменную «O74» при использовании приведенного выше кода «повторить».
В идеале я хотел бы просто включить «O74» в «do repeat» или «loop» вместо того, чтобы вводить каждый отдельный код ICD.Синтаксис:
compute flag = char.index(UPPER(DIAG2), 'O74') > 0.
прекрасно работает, однако, поскольку закодировано, он просто работает по одному столбцу "DIAG" за раз.Учитывая невероятно большое количество пациентов (> 3 000 000) и количество диагнозов на пациента (25), включение этого в цикл было бы идеальным.Было сделано несколько попыток.
Для целей набора данных «test» переменные «DIAG» были перечислены последовательно.В фактическом наборе данных каждый DIAG разделен двумя переменными.Если решение намного проще - последовательно перечислить эти переменные, то это, безусловно, можно сделать.
Я очень благодарен за любой вклад / руководство в том, что, вероятно, является очень элементарным вопросом синтаксиса в SPSS.