Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops SPSS通过一组变量与if语句循环_Loops_If Statement_Vector_Spss - Fatal编程技术网

Loops SPSS通过一组变量与if语句循环

Loops SPSS通过一组变量与if语句循环,loops,if-statement,vector,spss,Loops,If Statement,Vector,Spss,我有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) .

我有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 .
DO REPEAT first=W1_C14_0至W1_C14_51/
秒=W1_C14_1至W1_C14_52。
执行IF(SYSMIS(第一个)或firstsecond)。
如果(秒=1)则执行。
计算W1_拼写1=W1_拼写1+1。
ELSE IF(秒=2)。
计算W1_拼写2=W1_拼写2+1。
否则,如果(秒=3)。
计算W1_拼写3=W1_拼写3+1。
*等等,一直到。。。
否则,如果(秒=15)。
计算W1_拼写15=W1_拼写15+1。
结束如果。
结束如果。
结束重复。

您可以使用
VECTOR
命令循环拼写变量

VECTOR W1_spells = W1_spells1 TO W1_spells15.

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).
      LOOP #i=1 TO 15.
         DO IF (second=#i) . 
            COMPUTE W1_spells(#i) = W1_spells(#i) + 1.
         END IF.
      END LOOP.
   END IF.
END REPEAT.
矢量W1_拼写=W1_拼写1到W1_拼写15。
先重复=W1_C14_0到W1_C14_51/
秒=W1_C14_1至W1_C14_52。
执行IF(SYSMIS(第一个)或firstsecond)。
循环#i=1到15。
如果做(第二个=#i)。
计算W1#U咒语(#i)=W1#U咒语(#i)+1。
结束如果。
结束循环。
结束如果。
结束重复。

您需要更具体地说明什么是跑步,以及您希望最终获得的数据。如果您有一套
11112222
,结果会是什么?那么
12121212
或者
11221122
或者
1112223
等等呢。?您可能会从中找到一些动机,或者我可能会考虑使用<代码> VARSTORACE < /COD>以及使用<代码>滞后> /代码>函数。