我有一个包含100个变量的表(我这里只复制了8个变量),我想把它转换成一个宏,我只能插入第一个变量号(1)和最后一个变量号(100)并运行此表,其中只有一行或两行(而不是100)。 有谁知道这是怎么做到的吗?
CTABLES
/VLABELS VARIABLES=Loop1_a_01 var1 DISPLAY=DEFAULT
/TABLE var1 [C][ROWPCT.COUNT F40.0] +
var2 [C][ROWPCT.COUNT F40.0] +
var3 [C][ROWPCT.COUNT F40.0] +
var4 [C][ROWPCT.COUNT F40.0] +
var5 [C][ROWPCT.COUNT F40.0] +
var6 [C][ROWPCT.COUNT F40.0] +
var7 [C][ROWPCT.COUNT F40.0] +
var8 [C][ROWPCT.COUNT F40.0] BY Loop1_a_01
/CATEGORIES VARIABLES=Loop1_a_01 EMPTY=INCLUDE
/CATEGORIES VARIABLES=var5 ORDER=A KEY=VALUE
EMPTY=INCLUDE
/TITLES TITLE= 'TV'
答案 0 :(得分:3)
由于您对所有变量使用相同的统计信息,因此可以通过分解重复的统计信息来简化ctables代码,例如,
/ TABLE(var1 + var2 + ...)[ROWPCT.COUNT F40.0] BY ...
现在,如果要执行类似于包含varnn的数据集中的所有变量的操作,可以使用SPSSINC SELECT VARIABLES扩展命令自动执行此操作以生成宏。例如
SPSSINC SELECT VARIABLES MACRONAME ="!myvars"
/ PROPERTIES PATTERN =" var \ d +"
/ OPTIONS SEPARATOR =" +"。
CTABLES
/ TABLE(!myvars)[....
可以编写一个更复杂的宏来生成!myvars,但是如果你需要施加额外的逻辑,那么使用Python可编程性生成它会更容易。