SPSS: поиск повторных вхождений в предыдущие моменты времени

У меня есть набор данных как таковой:

Case #|DateA |Drug.1|Drug.2|Drug.3|DateB.1 |DateB.2  |DateB.3 |RcvdDrugXTimeA
------|------|------|------|------|--------|---------|--------|--
1     |DateA1|    X |    Y |    X |DateB1.1|DateB1.2 |DateB1.3| 0
2     |DateA2|    X |    Y |    X |DateB2.1|DateB2.2 |DateB2.3| 1
3     |DateA3|    Y |    Z |    X |DateB3.1|DateB3.2 |DateB3.3| 1
4     |DateA4|    Z |    Z |    Z |DateB4.1|DateB4.2 |DateB4.3| 0

Каждый случай имеет много записей о приеме лекарств в разные даты. Моя конечная точка получает препарат X в Time A, где Time рассчитывается на основе разницы между DateA а также DateB за каждый прием препарата.

Если случай получает препарат X в Time Aзатем я хочу узнать, получали ли они также препарат X в предыдущий день (чтобы определить, получали ли они препарат X в Time A это новое вхождение или повторное вхождение).

Для каждого случая, который получил препарат X по крайней мере один раз в Time AУ меня есть переменная RcvdDrugXTimeA = 1,

Если они действительно получили препарат X раньше Time Aтогда я хочу RcvdPriorDrugX = 2, Если они этого не сделали, то я хочу RcvdPriorDrugX = 1, Если они никогда не получали препарат X, то в идеале RcvdPriorDrugX = 0,

В приведенном выше примере Случай 1 получил лекарство X, но не в течение Time Aв то время как случаи 2 и 3 получили препарат X во время Time Aтаким образом RcvdDrugXTimeA = 1 для этих случаев. Скажите, что это произошло для них обоих в DateB.3, Разница между этими случаями заключается в том, что в случае 2 также ранее был получен препарат X, что делает получение препарата X в Time A повторение происшествия. С другой стороны, в случае 3 ранее не было получено лекарство X, что делало получение лекарства X в Time A новое явление для этого случая. Я хотел бы создать функцию, которая просматривает записи для тех случаев, когда критерий получения лекарства X во время Time A выполнено, и выдать вывод, чтобы сказать мне, если это произошло ранее или это новое вхождение. Я хотел бы исключить те случаи, когда они никогда не получали препарат X в Time A в выходной переменной.

1 ответ

Решение

Не совсем уверен, что я понимаю, что вы пытаетесь сделать, поэтому следующий синтаксис охватывает приведенный вами пример и достигает желаемого результата, который вы описали. Если пример (и мой синтаксис) не охватывают другие возможности или соображения, которые необходимо включить в процесс, сообщите мне об этом.

сначала я воссоздаю ваш пример набора данных:

data list list/Case#(f1) DateA Drug.1 Drug.2 Drug.3 DateB.1 DateB.2  DateB.3 (7a10) RcvdDrugXTimeA(f1).
begin data
1     "DateA1"   "X"   "Y"   "X"   "DateB1.1"   "DateB1.2"   "DateB1.3"  0
2     "DateA2"   "X"   "Y"   "X"   "DateB2.1"   "DateB2.2"   "DateB2.3"  1
3     "DateA3"   "Y"   "Z"   "X"   "DateB3.1"   "DateB3.2"   "DateB3.3"  1
4     "DateA4"   "Z"   "Z"   "Z"   "DateB4.1"   "DateB4.2"   "DateB4.3"  0
end data.

Теперь я подсчитываю, сколько раз вводилось лекарство X, а затем, если RcvdDrugXTimeA равно 0, вывод равен 0, если он равен единице, вывод равен 1, если X вводился только один раз, или 2, если он вводился более одного раза:

count NofX=Drug.1 Drug.2 Drug.3("X").
compute RcvdPriorDrugX=RcvdDrugXTimeA + (NofX > 1).
Другие вопросы по тегам