1

我在 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为数据集中的其他变量,直到所有变量都被分析?

先感谢您...

4

2 回答 2

1

我不确定您将如何处理所有这些输出,但您可以将其生产自动化。

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

这仍然留给您调用宏 300 次的任务。

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

于 2013-07-12T20:04:48.513 回答
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 /. 
于 2017-04-17T19:20:43.183 回答