我可以在SPSS中全局修复价值/标签对吗?

时间:2011-03-19 17:57:21

标签: labels spss

叹息。我有这个神话般的数据集,有近15,000个有效案例。只有一个问题。我的网络调查配置为自动为每个Likert变量传递唯一的数值。并且,由于调查分支多次,我最终会得到超过一百个标量变量,如下所示:

SampleLikertVariable。数字。 10355 =“非常不同意。” 10356 =“有点不同意。” 10357 =“中立。” 10358 =“有点同意。” 10359 =“非常同意。”

可悲的是,每个变量都有一个与刻度的五个点相关联的不同数值范围。在我可以组合变量之前,我需要将数据恢复到1,2,3,4,5。理想情况下,我想保持标签的完整性,但如果我失去它们,它不是世界末日。该过程需要通过语法脚本自动完成。

到目前为止,我能想到的唯一方法就是这样的IF语句块:

IF (MISSING(ywNfMotivationsPvp)=1) ywNfMotivationsPvp=0.
IF ywNfMotivationsPvp=10277 ywNfMotivationsPvp=1.
IF ywNfMotivationsPvp=10278 ywNfMotivationsPvp=2.
IF ywNfMotivationsPvp=10279 ywNfMotivationsPvp=3.
IF ywNfMotivationsPvp=10280 ywNfMotivationsPvp=4.
IF ywNfMotivationsPvp=10281 ywNfMotivationsPvp=5. 

但我们正在讨论需要获得同样治疗的数百个变量。必须有一个更好的方法。

我考虑创建一个基本的FOR循环来减少一些重复,但这仍然需要我手动记下每个变量号的唯一起始编号。我已经考虑将变量名和唯一起始号存储在配对数组中,但在挖掘文档并找出如何在SPSS语法中执行此操作之前,我想我会问一个简单的问题:

有更好或更简单的方法吗?

2 个答案:

答案 0 :(得分:0)

我想我已经想出了如何使用“AUTO RECODE \ INTO”来做到这一点。它不是完全没有疼痛,而是比我上面描述的更顺畅。

答案 1 :(得分:0)

好的解决方案。这也可以通过计算ALL或V1到v99的最小值或类似的值并从每个变量中减去该值来完成。 DO REPEAT会在这里工作。 AGGREGATE或OMS可以帮助您批量执行此操作。

使用autorecode需要注意的一件事:如果任何问题没有具有特定值的答案,它将被折叠掉,更高的值会向下移动。您可以在进行自动编码后通过制表所有变量的最大值进行检查。