Loops SPSS:当每个案例都有多个链接实例时,使用带REPEAT的IF函数
我有这样一个数据集:Loops SPSS:当每个案例都有多个链接实例时,使用带REPEAT的IF函数,loops,if-statement,linked-list,repeat,spss,Loops,If Statement,Linked List,Repeat,Spss,我有这样一个数据集: Case #|DateA |Drug.1|Drug.2|Drug.3|DateB.1 |DateB.2 |DateB.3 |IV.1|IV.2|IV.3 ------|------|------|------|------|--------|---------|--------|----|----|---- 1 |DateA1| X | Y | X |DateB1.1|DateB1.2 |DateB1.3| 1 | 0 | 1 2 |
Case #|DateA |Drug.1|Drug.2|Drug.3|DateB.1 |DateB.2 |DateB.3 |IV.1|IV.2|IV.3
------|------|------|------|------|--------|---------|--------|----|----|----
1 |DateA1| X | Y | X |DateB1.1|DateB1.2 |DateB1.3| 1 | 0 | 1
2 |DateA2| X | Y | X |DateB2.1|DateB2.2 |DateB2.3| 1 | 0 | 1
3 |DateA3| Y | Z | X |DateB3.1|DateB3.2 |DateB3.3| 0 | 0 | 1
4 |DateA4| Z | Z | Z |DateB4.1|DateB4.2 |DateB4.3| 0 | 0 | 0
对于每种情况,都有相关变量,即Drug.1与DateB.1和IV.1(指标变量1)相关;Drug.2与DateB.2和IV.2等相关
如果Drug.1是我要分析的情况,变量IV.1仅=1(在本例中,我要分析每个药物“X”的收据),依此类推其他IV变量。否则,如果该方案的药物不是“X”,则IV=0
我想计算每个接收到药物“X”的实例的DateA和DateB之间的差异
e、 g.在上述示例中,我想计算一个新变量:
DateDiffA1_B1.1 = DateA1 - DateB1.1
DateDiffA1_B2.1 = DateA1 - DateB2.1
DateDiffA1_B1.3 = DateA1 - DateB1.3
DateDiffA1_B2.3 = DateA1 - DateB2.3
DateDiffA1_B3.3 = DateA1 - DateB3.3
我不确定这个新变量是否需要像其他变量一样与药物“X”的每个实例相关联,或者它是否可以是一个单独的变量来统计每个病例的所有实例
最终目标是计算每个案例的日期差为的次数。实际上,不需要添加向量和循环,只需在一次
内重复即可:
compute N2W=0.
do repeat DateB = DateB.1 to DateB.3 /IV=IV.1 to IV.3 .
if IV=1 and datediff(DateA, DateB, "days")<=14 N2W = N2W + 1.
end repeat.
execute.
谢谢你的回答,eli-k!我使用了您的代码,尝试包含一个额外的变量,该变量给出了绝对datediff,然后进入计数步骤,每次IV.1到IV.3=1时,我都要创建一个变量,即如果每个IV=1,则从DrugDateDiff.1到DrugDateDiff.3。(1)您使用了DrugDateDiff
两次-一次作为计数变量,一次使用DO REPEAT'命令。换一个就行了。(2) 删除
IF`命令中的“/”。
compute N2W=0.
do repeat DateB = DateB.1 to DateB.3 /IV=IV.1 to IV.3 .
if IV=1 and datediff(DateA, DateB, "days")<=14 N2W = N2W + 1.
end repeat.
execute.
If any(1, IV.1 to IV.3) N2W=0.