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).