= SPSS Macro Logic = SPSS macros offer the following options for '''logic'''. <> ---- == Operators == The following logical operators are valid for logic control of SPSS macros. ||'''Operator''' || ||`!EQ`, `=` || ||`!NE`, `~=` || ||`!GT`, `>` || ||`!GE`, `>=` || ||`!LT`, `<` || ||`!LE`, `<=` || ||`!OR`, `|` || ||`!AND`, `&` || ||`!NOT`, `~` || ---- == Conditional Processing == The `!IF` ... `!THEN` ... `!IFEND` syntax is used for conditional processing inside a macro. `!ELSE` is optional. Further logic can be expressed in nested blocks. {{{ define !export(type = !tokens(1)) !IF (!type !EQ "xlsx") !THEN save translate /outfile="export.xlsx" /type=xlsx /version=12 /map /replace /fieldnames /cells=values. !ELSE !IF (!type !EQ "dta") !THEN save translate /outfile="export.dta" /type=stata /version=8 /edition=se /map /replace. !ELSE save outfile="export.sav". !IFEND !IFEND !enddefine }}} Inside the `!IF` construct, string literals ''can'' be left unquoted. This comes with the unexpected side-effect of case-sensitivity. ---- CategoryRicottone