SPSS Modeler常用函数简介
SPSS Modeler软件包含多种功能丰富的函数,几乎涵盖了我们日常工作的各种需要,主要有信息函数、转换函数、比较函数、逻辑函数、数值函数、三角函数、概率函数、位元整数运算、随机函数、字符串函数、日期和时间函数、序列函数、全局函数、空值和Null值处理函数、特殊函数等15大类,本讲义将逐一介绍并说明其注意事项。
在本讲义中涉及到的函数,具体的字段格式按照如下约定表示:
BOOL
布尔值或标志,例如真或假
NUMNUM1NUM2
任意数字
REALREAL1REAL2
任意实数,例如1.69-7.8
INTINT1INT2
任意整数,例如1-6
CHAR
字符代码,例如'D'
STRING
字符串,例如"bookID"
LIST
项目列表,例如["my""teacher"]
ITEM
字段,例如Customerextract_concept
DATE
其值具有DD-MON-YYYY这样格式的日期字段,例如start_date
TIME
其值具有HHMMSS这样格式的时间字段,例如power_flux
此外,本讲义中的函数以函数、结果类型(整数、字符串等)和说明(如果有)各占一列的形式一一列举说明。例如,对函数rem的说明如下。
功能
结果
说明
INT1 rem INT2
数值
返回INT1除以INT2所得的余数,例如,INT1-(INT1 div INT2)*INT2
1. 信息函数
信息函数用于深入了解特定字段的值。它们通常用于派生标志字段。例如,可以使用@BLANK函数来创建一个标志字段,以指示选定字段的值为空值的记录。同样,可以使用存储类型函数(如is_string)来检查某个字段的存储类型。
功能
结果
说明
@BLANK(FIELD)
布尔值
根据上游类型节点或源节点(“类型”选项)中设置的空值处理规则对值为空值的所有记录返回真值。注意,不能通过脚本调用此函数
@NULL(ITEM)
布尔值
为未定义值的所有记录返回真值。未定义值是系统Null值,在Modeler中显示为$null$,注意:此功能无法通过脚本调用
is_date(ITEM)
布尔值
为所有日期类型的记录返回真值
is_datetime(ITEM)
布尔值
为所有日期时间类型的记录返回真值
is_integer(ITEM)
布尔值
为所有整数类型的记录返回真值
is_number(ITEM)
布尔值
为所有数值类型的记录返回真值
is_real(ITEM)
布尔值
为所有实数类型的记录返回真值
is_string(ITEM)
布尔值
为所有字符串类型的记录返回真值
is_time(ITEM)
布尔值
为所有时间类型的记录返回真值
is_timestamp(ITEM)
布尔值
为所有时间戳类型的记录返回真值
2. 转换函数
转换函数可用来构建新字段和转换现有文件的存储类型。例如,可通过将字符串连接在一起或分拆字符串来形成新字符串。若要连接两个字符串,请使用运算符“><”。例如,字段Site的值为"BRAMLEY",则"xx"><Site将返回"xxBRAMLEY"。即使参数不是字符串,“><”的结果也始终是字符串,因此,如果字V13,字段V25,则V1><V2将返回"35"(字符串而非数值)。请注意,转换函数及其他要求特定类型输入(如日期或时间值)的函数取决于“流选项”对话框中指定的当前格式。例如,要将值为Jan2003Feb2003等的字符串字段转换为日期存储格式,请选择MONYYYY作为流的默认日期格式。
功能
结果
说明
ITEM1><ITEM2
字符串
连接两个字段的值,并返回结果字符串ITEM1ITEM2
to_integer(ITEM)
整数
将指定字段的存储值转换为整数
to_real(ITEM)
实数
将指定字段的存储值转换为实数
to_number(ITEM)
数值
将指定字段的存储值转换为数值
to_string(ITEM)
字符串
将指定字段的存储值转换为字符串
to_time(ITEM)
时间
将指定字段的存储值转换为时间
to_date(ITEM)
日期
将指定字段的存储值转换为日期
to_timestamp(ITEM)
时间戳
将指定字段的存储值转换为时间戳
to_datetime(ITEM)
日期时间
将指定字段的存储值转换为日期时间值
3. 比较函数
比较函数用于字段值的相互比较或与指定字符串进行比较。例如,可以使用“=”来检查字符串是否相等。字符串相等的验证示例:Class="class1"。对数值比较来说,大于表示离正无穷更近,小于表示离负无穷更近,即所有负数均小于任意正数。
功能
结果
说明
TEM1=ITEM2
布尔值
ITEM1等于ITEM2的记录返回真值
ITEM1/=ITEM2
布尔值
两个字符串不完全相同时返回真值,完全相同时返回0
ITEM1<ITEM2
布尔值
ITEM1小于ITEM2的记录返回真值
ITEM1<=ITEM2
布尔值
ITEM1小于等于ITEM2的记录返回真值
ITEM1>ITEM2
布尔值
ITEM1大于ITEM2的记录返回真值
ITEM1>=ITEM2
布尔值
ITEM1大于等于ITEM2的记录返回真值
count_equal(ITEM1,LIST)
整数
返回字段列表中等于ITEM1的值的个数,如果ITEM1Null,则返回Null
count_greater_than(ITEM1,LIST)
整数
返回字段列表中大于ITEM1的值的个数,如果ITEM1Null,则返回Null
count_less_than(ITEM1,LIST)
整数
返回字段列表中小于ITEM1的值的个数,如果ITEM1Null,则返回Null
count_not_equal(ITEM1,
整数
返回字段列表中不等于ITEM1的值的个数,如果ITEM1Null,则返回Null
ount_nulls(LIST)
整数
返回字段列表中Null值的个数
date_before(DATE1,DATE2)
布尔值
用于检查日期值的排序。如果DATE1早于DATE2,则返回真值
max(ITEM1,ITEM2)
Any
返回ITEM1ITEM2两项中较大的一个
max_n(LIST)
数值
返回数值字段列表中的大值,如果所有字段值为Null,则返回Null
min(ITEM1,ITEM2)
Any
返回ITEM1ITEM2两项中较小的一个
min_n(LIST)
数值
返回数值字段列表中的小值,如果所有字段值为Null,则返回Null
time_before(TIME1,TIME2)
布尔值
用于检查时间值的排序。如果TIME1早于TIME2,则返回真值
member(ITEM,LIST)
布尔值
如果ITEM是指定LIST的成员,则返回真值,否则返回假值,还可以指定字段名称列表
4. 逻辑函数
MODELER表达式可用来执行逻辑运算,主要功能如下。
功能
结果
说明
COND1 and COND2
布尔值
此运算为逻辑合取运算,当COND1COND2同时为真时返回真值,如果COND1为假,则不求COND2的值,此时可以构造这样的合取,让COND1首先检验COND2中的运算是否合法,例如,length(Label)>=6 and Label(6)='x'
COND1 or COND2
布尔值
此运算为逻辑(包含性)析取运算,当COND1COND2为真或这两者同时为真时,返回真值,如果COND1为真,则不求COND2的值
not(COND)
布尔值
此运算为逻辑否运算,当COND为假时返回真,否则,此运算将返回值0
If COND then EXPR1 else EXPR2 endif
Any
此运算为条件求值,如果COND为真,此运算将返回EXPR1的结果,否则,将返回EXPR2的求值结果
If COND1 then EXPR1 Elseif COND2 then EXPR2 else EXPR_N endif
Any
此运算为多分支条件求值。如果COND1为真,此运算将返回EXPR1的结果,如果COND2为真,此运算将返回EXPR2的求值结果,否则,将返回EXPR_N的求值结果
5. 数值函数
MODELER包含许多常用的数值函数,主要功能如下。
功能
结果
说明
-NUM
数值
用于求NUM的相反数,返回具有相反符号的对应数字
NUM1+NUM2
数值
返回NUM1NUM2相加所得的和
code-NUM2
数值
返回NUM1减去NUM2所得的差
NUM1*NUM2
数值
返回NUM1NUM2相乘所得的积
NUM1/NUM2
数值
返回NUM1除以NUM2所得的商
INT1 div INT2
数值
用于进行整数除法。返回INT1除以INT2所得的商
INT1 rem INT2
数值
返回INT1除以INT2所得的余数,例如,INT1-(INT1 div INT2)*INT2
INT1 mod INT2
数值
此函数已被rem函数取代,不宜再使用
BASE ** POWER
数值
返回BASEPOWER次方,底和幂可以是任意数字(一种情况除外:如果POWER为除整数0之外其他类型的0,则BASE不能为0)。如果POWER为整数,则可通过将BASE连续乘POWER次计算出结果,因此,如果BASE为整数,则结果为整数。如果POWER为整数0,则结果将始终是与BASE类型相同的1。如果POWER不是整数,则用公式exp(POWER * log(BASE))计算结果
abs(NUM)
数值
返回NUM的绝对值,结果始终是同一类型的数值
exp(NUM)
实数
空值是指零长度的字符串返回eNUM次方(e为自然对数的底)
fracof(NUM)
实数
返回NUM的小数部分,定义为NUM-intof(NUM)
intof(NUM)
整数
将其参数截为整数,返回与NUM符号相同的整数,取满足abs(INT)<=abs(NUM)大值
log(NUM)
实数
返回NUM的自然对数(以e为底),NUM不能为零(无论何种类型)
log10(NUM)
实数
返回NUM10为底的对数,NUM不能为零(无论何种类型)。此函数定义为log(NUM)/log(10)
negate(NUM)
数值
用于求NUM的相反数,返回具有相反符号的对应数字
round(NUM)
整数
用于将NUM四舍五入取整数,如果NUM为正数,则用公式intof(NUM+0.5),如果NUM为负数,则用公式intof(NUM-0.5)
sign(NUM)
数值
用于确定NUM的符号,如果NUM为整数,此运算将返回-101。如果NUM为实数,将返回-1.00.01.0,取决于NUM是负数、零还是正数
sqrt(NUM)
实数
返回NUM的平方根,NUM必须是正数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。