自定义表在SPSS中查找 - 构建循环

时间:2013-07-12 08:33:13

标签: loops syntax spss

我在SPSS中使用自定义表函数来构建表。现在,我得到了理想的表格配置,语法如下:

DATASET ACTIVATE DatenSet2.
* Benutzerdefinierte Tabellen.
CTABLES
  /FORMAT EMPTY=ZERO MISSING='.' MINCOLWIDTH=1.27 MAXCOLWIDTH=2.54 UNITS=CM
  /SMISSING VARIABLE
  /VLABELS VARIABLES=Q3 DISPLAY=NONE  /VLABELS VARIABLES=gruppebreak regbreak sexbreak alterbreak 
    bildbreak erwerbbreak DISPLAY=LABEL
  /TABLE Q3 [C][COUNT F40.0, COLPCT.COUNT PCT40.1] BY Q3 [C] + gruppebreak [C] + regbreak [C] + 
    sexbreak [C] + alterbreak [C] + bildbreak [C] + erwerbbreak [C]
  /SLABELS POSITION=ROW VISIBLE=NO
  /CATEGORIES VARIABLES=Q3 [1, 2] EMPTY=EXCLUDE TOTAL=YES LABEL='Total' POSITION=AFTER
  /CATEGORIES VARIABLES=gruppebreak regbreak sexbreak alterbreak bildbreak erwerbbreak ORDER=A 
    KEY=VALUE EMPTY=INCLUDE
  /TITLES
    TITLE=')TABLE'.

在这种语法中,Q3是我根据6个不同标准分析的变量。这六个人一直保持不变。我的问题是我有300个变量,如Q3,我想为所有变量生成表格。我想问一下是否有可能构建一个“循环”,它只会将Q3替换为数据集中的其他变量,直到所有变量都被分析出来?

提前谢谢你......

2 个答案:

答案 0 :(得分:1)

我不确定您将如何处理所有输出,但您可以自动生成它。

最简单的是,您可以为CTABLES语法定义一个宏,该语法只接受一个参数,变量名称,并提供所有其他参数。

这仍然让你完成300次调用宏的任务。

如果您已通过SPSS社区网站(www.ibm.com/developerworks/spssdevcentral)安装了Python Essentials for Statistics,则可以将您的语法嵌入到一个小的Python程序中,该程序会迭代所有感兴趣的变量。

答案 1 :(得分:1)

在这里,我将循环定义为' LOOP1'。您可以对前两行使用这种确切的语法,它只是样板文件。接下来,我把我想要生成的表格。在任何地方你都能看到一个'!i'循环中的当前变量将放在那里。 '!DOEND。'和'!ENDDEFINE。'也是样板,你可以留下它们。到目前为止,只需将我的桌子更换为我的桌子,并将Q3替换为!i。它会出现在桌面上的任何位置。我写LOOP1 Q1 Q2的最后一部分是我现在称之为循环的地方。在这里你可以放置你想要循环的300个变量。您必须使用正斜杠(/)和句点跟随变量列表。

DEFINE LOOP1(!POS !CHAREND('/')).

!DO !i !IN (!1).

CTABLES

  /VLABELS VARIABLES = !i age_groups_1 DISPLAY=BOTH

/TABLE !i [C] BY age_groups_1 [C][COLPCT.COUNT PCT40.1, COLPCT.COUNT.LCL PCT40.1, 
    COLPCT.COUNT.UCL PCT40.1, UCOUNT F40.0]

/SLABELS POSITION=ROW

/CATEGORIES VARIABLES=!i [1, 2] EMPTY=EXCLUDE TOTAL=YES POSITION=AFTER

/CATEGORIES VARIABLES=age_groups_1 ORDER=A KEY=VALUE EMPTY=INCLUDE

/CRITERIA CILEVEL=95.

!DOEND.

!ENDDEFINE.

LOOP1 Q1 Q2 Q3 Q4 Q5A Q5B Q5C Q5D Q5E Q6 Q6_dummy Q6_recode Q7_01 Q7_02 Q7_03 Q7_04 Q7_05 Q7_06 Q7_07 
Q7_08 Q7_09 Q7_10 Q7_11 Q7_12 Q7_13 Q8A Q8B Q8C Q9 Q10 Q11_1 Q11_2 Q11_3 Q11_4 Q11_5 Q12 Q13_1 
Q13_2 Q13_3 Q13_4 Q13_5 Q13_6 Q13_7 Q14 Q15A Q15B Q15C Q15D Q15E Q15F Q15G Q15H Q16A Q16B Q16C Q16D 
Q16E Q16F Q16G Q17 Q18 Q19 Q20_1 Q20_2 Q20_3 Q20_4 Q20_5 Q20_6 Q21A Q21B Q21C Q21D Q21E Q21F 
Q22_C01 Q22_C02 Q22_C03 /.