0 / 0
Go back to the English version of the documentation
处理包含系统缺失值的记录
Last updated: 2024年10月07日
处理具有系统缺失值的记录 (SPSS Modeler)

什么是系统缺失值?

系统缺失值代表未知或不适用的数据值。 在数据库中,这些值通常称为 NULL 值。 系统缺失值不同于空白值。 空白值通常在“类型”节点中定义成可以视为用户定义缺失值的特定值或值范围。 在建模上下文中,空白值是以不同的方式处理。

构造系统缺失值

在从数据源读取的数据中,可能存在系统缺失值(例如,数据库表可能包含 NULL 值)。 您可通过在表达式中使用值 undef 来构造系统缺失值。 例如,以下 CLEM 表达式返回 Age(如果小于或等于 30)或缺失值(如果大于 30):

if Age > 30 then undef else Age endif

执行外连接时,数字除以零时,计算负数的平方根时,以及在其他情况下,也可以创建缺失值。

显示系统缺失值

在表和其他输出中,系统缺失值显示为 $null$

检验系统缺失值

使用特殊函数 @NULL 可以在参数值为系统缺失值时返回 true。 例如:

if @NULL(MyFieldName) then 'It is null' else 'It is not null' endif

传递到函数的系统缺失值

传递到函数的系统缺失值通常会将缺失值传播到输出。 例如,如果特定行中字段 f1 的值是系统缺失值,那么对于该行,表达式 log(f1) 也会求值为系统缺失值。 @NULL 函数是一个例外。

涉及算术运算符的表达式中的系统缺失值

将算术运算符应用于包含系统缺失值的值会产生系统缺失值。 例如,如果特定行中字段 f1 的值是系统缺失值,那么表达式 f1 + 10 也会求值为该行的系统缺失值。

涉及逻辑运算符的表达式中的系统缺失值

在涉及逻辑运算符的表达式中处理系统缺失值时,三值逻辑(truefalsemissing)的规则适用,并可以在真值表中描述。 下列各表显示常用逻辑运算符 notandor 的真值表。

表 1. NOT 真值表
操作数 NOT 操作数
missing missing
表 2. AND 真值表
Operand1 Operand2 操作数 1 AND 操作数 2
missing missing
missing
missing missing
missing
missing missing missing
表 3. OR 真值表
Operand1 Operand2 操作数 1 OR 操作数 2
missing
missing missing
missing
missing missing
missing missing missing

涉及比较运算符的表达式中的系统缺失值

将系统缺失值与非系统缺失值比较时,结果会求值为系统缺失值,而非 true 或 false 结果。 系统缺失值可以相互比较;两个系统缺失值视为相等。

if/then/else/endif 表达式中的系统缺失值

使用条件表达式并且条件表达式返回系统缺失值时,该条件表达式会返回来自 else 子句的值。

“选择”节点中的系统缺失值

对于特定记录,当选择表达式求值为缺失值时,“选择”节点不会输出该记录(此操作同时适用于“包括”和“废弃”方式)。

“合并”节点中的系统缺失值

使用键进行合并时,不会合并任何在键字段中包含系统缺失值的记录。

汇总中的系统缺失值

按列汇总数据时,缺失值不会包括在计算中。 例如,在包含三个值 {12undef} 的列中,该列中各个值的总和计算为 3;平均值计算为 1.5

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more