SPSS:搜索之前时间点的重复出现次数

时间:2017-02-08 22:57:45

标签: repeat 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

每个病例都有很多在不同日期接受药物的记录。我的终端点在Time A接收药物X,其中Time是根据每个药物收据的DateADateB之间的差异计算的。

如果病例在Time A收到药物X,那么我想知道他们是否也在前一天收到了药物X(以确定他们在Time A接受药物X是否是新发生的或重复发生)。

对于在Time A期间至少收到一次药物X的每个案例,我都有变量RcvdDrugXTimeA = 1

如果他们确实在Time A之前收到药物X,那么我想要RcvdPriorDrugX = 2。如果他们没有,那么我想要RcvdPriorDrugX = 1。如果他们从未收到药物X,那么理想情况下RcvdPriorDrugX = 0

在上面的示例中,案例1收到药物X但不在Time A内,而病例2和3在Time A期间都收到了药物X,因此RcvdDrugXTimeA = 1收到了这些病例。假设他们DateB.3发生了这种情况。这些案例之间的区别在于案例2之前也收到了药物X,因此在Time A重复发生药物X的接收。另一方面,病例3之前没有收到药物X,从而使Time A的药物X在本案中新发生。我想创建一个函数,回顾那些符合Time A期间接收药物X的标准的记录,并产生一个输出来告诉我这是否曾经发生过,或者它是否是新的发生。我想排除那些他们从未在输出变量Time A收到药物X的情况。

1 个答案:

答案 0 :(得分: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仅被施用一次则输出为1,如果给予多次则输出为2 :

count NofX=Drug.1 Drug.2 Drug.3("X").
compute RcvdPriorDrugX=RcvdDrugXTimeA + (NofX > 1).