-1

叹。我有这个很棒的数据集,包含近 15,000 个有效案例。只有一个问题。我的网络调查被配置为自动为每个李克特变量传递唯一的数值。而且,由于调查多次分支,我最终得到了一百多个标量变量,如下所示:

样本李克特变量。数字。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 语法中执行此操作之前,我想我会问一个简单的问题:

有没有更好或更简单的方法来做到这一点?

4

2 回答 2

0

很好的解决方案。这也可以通过计算ALLorV1 to v99或类似的东西的最小值并从每个变量中减去它来完成。DO REPEAT 将在这里工作。 AGGREGATE或者OMS可以帮助您批量执行此操作。

需要注意的一件事autorecode:如果任何问题没有具有特定价值的答案,它将被折叠起来,更高的价值会被向下移动。之后,您可以通过将所有变量的最大值制成表格来检查autorecode

于 2011-03-19T23:06:19.810 回答
0

我想我已经想出了如何使用AUTO RECODE \INTO. 它并非完全无痛,但比我上面描述的要顺畅得多。

于 2011-03-19T21:17:18.133 回答