【发布时间】:2016-05-22 02:38:39
【问题描述】:
我在 SPSS 中有大量调查数据,其中大约 15% 的受访者多次回答了调查(这不是故意的)。我已经制定了一种系统的方法来确定要保留哪些案例,但不确定如何编写循环来执行此任务。
我拥有的变量是:
- ID:每个人的唯一标识符(一些重复提交)
- SurveyComplete:0/1(调查是否完成)
- 重复:0/1(他们是否提交了多个调查)
- PrimaryFirst:0/1(标识第一次提交)
- MatchSequence:整数(调查提交编号的数字指标)
- 日期:提交日期
- keep: 0/1(尚未创建用于指示是否保留记录的指标)
我的数据如下所示:
ID SurveyComplete Duplicate PrimaryFirst MatchSequence Date keep
123 1 1 1 1 07162015 .
123 1 1 0 2 07182015 .
456 0 1 1 1 07152015 .
456 1 1 0 2 07192015 .
789 0 1 1 1 07112015 .
789 0 1 0 2 07182015 .
789 0 1 0 3 07212015 .
012 1 0 1 1 07122015 .
理论上,我想按以下顺序确定以下内容:
- IF Primary = 1 AND SurveyComplete = 1 THEN keep = 1。此 ID 的其他提交保持 = 0。
- ELSE IF Primary = 0 AND SurveyComplete = 1 THEN keep = 1。此 ID 的其他提交保持 = 0。
- ELSE(所有回复的 SurveyComplete = 0)保留最近提交的内容。
这是生成的保留列:
ID SurveyComplete Duplicate PrimaryFirst MatchSequence Date keep
123 1 1 1 1 07162015 1
123 1 1 0 2 07182015 0
456 0 1 1 1 07152015 0
456 1 1 0 2 07192015 1
789 0 1 1 1 07112015 0
789 0 1 0 2 07182015 0
789 0 1 0 3 07212015 1
012 1 0 1 1 07122015 1
理想情况下,我希望能够在没有插件的情况下以 SPSS 语法完成此操作,因为我的工作不喜欢软件附加组件。非常感谢您提供的任何帮助!
【问题讨论】:
标签: spss data-management