首页 > 解决方案 > 比较组内各行之间的值

问题描述

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

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

<code>在此输入代码</code>

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

标签: spss

解决方案


wave有很多方法可以做到这一点,所以假设每个XEmail_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)).

此时,您在每个相关行中都有 1 wave=7。现在要将它放到wave=6行中,也有几种方法,但这是一个有趣的方法:

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

推荐阅读