比较组内各行之间的值

Comparing values between lines within a group

我想创建一个列来表示调查受访者是否已将位置从第 6 波更改为第 7 波。我不关心之前的波(尽管它们存在于数据中)。 所以我想要的逻辑是:如果来自第 6 波的电子邮件 = 来自第 7 波的电子邮件和来自 6 的位置 <> 来自 7 的位置然后 1。所以我只关心同时出现在第 6 波和第 7 波中的受访者。

这是我想要的输出示例:(我希望 1 同时出现在第 6 波和第 7 波上,表示这两个波的变化)。

我不确定如何在 SPSS 中合理地编写它。任何提示将不胜感激。谢谢!

有很多方法可以做到这一点,所以这里有一个假设每个 wave X Email_A 组合只出现一次的方法应该有效:

sort cases by Email_A wave.
compute changeLocation=
   (Email_A=lag(Email_A) and wave=7 and lag(wave)=6 and location<>lag(location)).

此时您在 wave=7 的每个相关行中都有 1。现在要将其添加到 wave=6 行,还有一些方法,但这里有一个有趣的方法:

sort cases by Email_A wave (d).
if Email_A=lag(Email_A) and wave=6 and lag(changeLocation)=1 changeLocation=1.