概述(IF 命令)

概述(IF 命令)

IF 根据数据中找到的逻辑条件有条件地执行单个变换命令。 变换可以为活动数据集中的每个个案创建新变量或修改现有变量的值。 您可以创建或修改数字变量和字符串变量的值。 如果创建新的字符串变量,那么必须首先在 STRING 命令上声明该变量。

IF 具有三个组件: 用于设置逻辑条件的 逻辑表达式 , 目标变量 (要修改或创建的变量) 和 赋值表达式。 根据赋值表达式修改目标变量的值。

当用于执行单个类似 COMPUTE的条件变换时, IF 效率最高。 如果需要多个 IF 语句来定义条件,那么使用 RECODE 命令或 DO IF—END IF 结构通常更有效。

基本规范

基本规范是后跟目标变量,必需等号和赋值表达式的逻辑表达式。 仅当逻辑表达式为 true 时,才会执行赋值。

语法规则

逻辑表达式可以是简单逻辑变量或关系,也可以是涉及变量,常量,函数,关系运算符和逻辑运算符的复杂逻辑检验。 逻辑表达式和赋值表达式都可以使用 COMPUTE 变换中允许的任何数字或字符串函数。

括号可用于将逻辑表达式括起来。 还可以在逻辑表达式中使用括号来指定操作顺序。 可以使用额外的空格或括号来使表达式更易于读取。

关系可以比较变量,常量或更复杂的算术表达式。 关系不能缩写。 例如, (A EQ 2 OR A EQ 5) 有效,而 (A EQ 2 OR 5) 无效。 必须使用空白 (非逗号) 将关系运算符与正在比较的表达式分隔开。

关系不能将字符串变量与数字值或变量进行比较,反之亦然。 关系无法将逻辑函数 SYSMIS, MISSING, ANY或 RANGE 的结果与数字进行比较。

表达式中使用的字符串值必须在引号中指定,并且必须包含任何前导或尾部空格。 小写字母被视为与大写字母不同。

用作目标变量的字符串变量必须已存在。 要声明新的字符串变量,请首先使用 STRING 命令创建该变量,然后在 IF上指定新变量作为目标变量。

相关推荐