SPSS中的条件过滤

conditional filtering in SPSS

我使用 SPSS 宏为不同的选区创建了许多报告。其中一组只需要来自女性受访者的数据,而其他组则需要数据中的男性和女性受访者。是否可以在 SPSS 中创建一个条件过滤器,以便我可以对所有报告使用相同的循环,或者我是否必须为只需要女性的组创建一个单独的语法?

编辑:我的代码的简化版本如下所示:

DEFINE !ess1 (inum=!charend ('/') 
/ iname=!charend ('/')
/ iname2=!charend ('/')
/ g1=!charend ('/')
/ g2=!charend ('/')
/ g3=!charend ('/')
/ g4=!charend ('/')).

RECODE INST 
    (!inum=1) 
    ( !g1 = 2) 
    (!g2= 3)    
    (!g3=4)
    (!g4=5)
    into cgroup.
MISSING VALUES cgroup(-9).
variable labels cgroup 'Comparison Group'.
value labels cgroup 1 !iname2 2 'Thing1' 3 'Thing2' 4 'Thing3' 5 'Thing4'.
EXECUTE.

USE ALL.
VARIABLE LEVEL ALL (NOMINAL).

CTABLES
  /VLABELS VARIABLES=satisf cgroup DISPLAY=DEFAULT
  /TABLE cgroup  [ROWPCT.COUNT PCT40.1] BY satisf
  /SLABELS VISIBLE=NO
  /CATEGORIES VARIABLES=satisf cgroup ORDER=A KEY=VALUE EMPTY=INCLUDE TOTAL=YES LABEL="Overall" POSITION=AFTER
  MISSING=EXCLUDE
  /TITLES
   TITLE= 'Overall, how satisfied have you been with this example syntax?'.

DELETE VARIABLES cgroup.

OUTPUT EXPORT
  /CONTENTS  EXPORT=VISIBLE  LAYERS=PRINTSETTING  MODELVIEWS=PRINTSETTING
  /PDF  DOCUMENTFILE=!Quote(!Concat('filepath',!iname,'.pdf'))
     EMBEDBOOKMARKS=YES  EMBEDFONTS=YES.

OUTPUT SAVE
OUTFILE=!Quote(!Concat('filepath',!iname,'.spv'))

OUTPUT CLOSE *. 
OUTPUT NEW.

!ENDDEFINE.

!ess1 inum=1/iname=Name1/ iname2='Name1'/g1= 2,3,4,5,6,7,8,9,10,11,12,13 /g2= 21,22,23,24,25,26,27,29/g3=31,32,33,34,35,36,37,38/g4=41,42,43,44,45/.
!ess1 inum=2 /iname=Name2 /iname2='Name2'/g1= 1,3,4,5,6,7,8,9,10,11,12,13 /g2= 21,22,23,24,25,26,27,29/g3=31,32,33,34,35,36,37,38/g4=41,42,43,44,45/.
!ess1 inum=3 /iname=Name3 /iname2='Name3'/g1= 1,2,4,5,6,7,8,9,10,11,12,13 /g2= 21,22,23,24,25,26,27,29/g3=31,32,33,34,35,36,37,38/g4=41,42,43,44,45/.

您需要向宏添加一个参数以决定是否过滤掉男性,然后,如果是 (!IF !femalesonly eq "yes"),生成适当的计算和过滤语法 (然后在结束时将其关闭)。

看看您是如何设置此工作流程的,您可以暂时将 INST 变量设置为 SYSMIS,用于要排除男性的特定机构(?)。

所以在您的代码中添加如下内容:

/* Untested */.
TEMP.
DO IF ANY(INST, !g1).
  RECODE INST (ELSE=SYSMIS).
END IF.
CTABLES ...

随着 INST 变量现在设置为 SYSMISCTABLES 将在数据的任何表格表示中默认排除这些情况。