【发布时间】:2014-02-11 08:22:20
【问题描述】:
我有 53 个变量,分别命名为 W1_C14_0 到 W1_C14_52,每个变量都有一个从 1 到 15 的值。我需要找出这个列表中每个数字有多少个“拼写”——即有多少个单独的 1,在每种情况下都是 2 等。这就是我正在做的事情,它工作正常,但是有没有办法将它压缩成一个循环?
DO REPEAT first = W1_C14_0 to W1_C14_51 /
second = W1_C14_1 to W1_C14_52 .
DO IF (SYSMIS(first) OR first<>second) .
DO IF (second=1) .
COMPUTE W1_spells1 = W1_spells1 + 1 .
ELSE IF (second=2) .
COMPUTE W1_spells2 = W1_spells2 + 1 .
ELSE IF (second=3) .
COMPUTE W1_spells3 = W1_spells3 + 1 .
*and so on down to...
ELSE IF (second=15) .
COMPUTE W1_spells15 = W1_spells15 + 1 .
END IF.
END IF.
END REPEAT .
【问题讨论】:
-
您需要更具体地了解什么是一次运行以及您最终想要的数据。如果你有一组
11112222,结果会是什么?12121212或11221122或1112223等怎么样?你可能会从这个NABBLE question 中找到一些动力,或者我可能会考虑使用VARSTOCASES并同时使用LAG函数。
标签: loops if-statement vector spss