《spss-molder常用函数简介》由会员分享,可在线阅读,更多相关《spss-molder常用函数简介(14页珍藏版)》请在金锄头文库上搜索。
1、SPSS Molder常用函数简介SPSS Molder软件包含多种功能丰富的函数,几乎涵盖了我们日常工作的各种需要,主要有信息函数、转换函数、比较函数、逻辑函数、数值函数、三角函数、概率函数、位元整数运算、随机函数、字符串函数、日期和时间函数、序列函数、全局函数、空值和Null值处理函数、特殊函数等15大类,本附录将逐一介绍并说明其注意事项。在本附录中涉及到的函数,具体的字段格式按照如下约定表示。BOOL布尔值或标志,例如真或假NUM、NUM1、NUM2任意数字REAL、REAL1、REAL2任意实数,例如1.69、-7.8INT、INT1、INT2任意整数,例如1或-6CHAR字符代码,例
2、如DSTRING字符串,例如bookIDLIST项目列表,例如myteacherITEM字段,例如Customer或extract_conceptDATE其值具有DD-MON-YYYY这样格式的日期字段,例如start_dateTIME其值具有HHMMSS这样格式的时间字段,例如power_flux此外,本附录中的函数以函数、结果类型(整数、字符串等)和说明(如果有)各占一列的形式一一列举说明。例如,对函数rem的说明如下。功能结果说明INT1 rem INT2数值返回INT1除以INT2所得的余数,例如,INT1-(INT1 div INT2)*INT21. 信息函数信息函数用于深入了解特定
3、字段的值。它们通常用于派生标志字段。例如,可以使用BLANK函数来创建一个标志字段,以指示选定字段的值为空值的记录。同样,可以使用存储类型函数(如is_string)来检查某个字段的存储类型。功能结果说明BLANK(FIELD)布尔值根据上游类型节点或源节点(“类型”选项)中设置的空值处理规则对值为空值的所有记录返回真值。注意,不能通过脚本调用此函数NULL(ITEM)布尔值为未定义值的所有记录返回真值。未定义值是系统Null值,在Molder中显示为$null$,注意:此功能无法通过脚本调用is_date(ITEM)布尔值为所有日期类型的记录返回真值is_datetime(ITEM)布尔值为
4、所有日期时间类型的记录返回真值is_integer(ITEM)布尔值为所有整数类型的记录返回真值is_number(ITEM)布尔值为所有数值类型的记录返回真值is_real(ITEM)布尔值为所有实数类型的记录返回真值is_string(ITEM)布尔值为所有字符串类型的记录返回真值is_time(ITEM)布尔值为所有时间类型的记录返回真值is_timestamp(ITEM)布尔值为所有时间戳类型的记录返回真值2. 转换函数转换函数可用来构建新字段和转换现有文件的存储类型。例如,可通过将字符串连接在一起或分拆字符串来形成新字符串。若要连接两个字符串,请使用运算符“ITEM2字符串连接两个字
5、段的值,并返回结果字符串ITEM1、ITEM2to_integer(ITEM)整数将指定字段的存储值转换为整数to_real(ITEM)实数将指定字段的存储值转换为实数to_number(ITEM)数值将指定字段的存储值转换为数值to_string(ITEM)字符串将指定字段的存储值转换为字符串to_time(ITEM)时间将指定字段的存储值转换为时间to_date(ITEM)日期将指定字段的存储值转换为日期to_timestamp(ITEM)时间戳将指定字段的存储值转换为时间戳to_datetime(ITEM)日期时间将指定字段的存储值转换为日期时间值3. 比较函数比较函数用于字段值的相互比
6、较或与指定字符串进行比较。例如,可以使用“=”来检查字符串是否相等。字符串相等的验证示例:Class=class1。对数值比较来说,大于表示离正无穷更近,小于表示离负无穷更近,即所有负数均小于任意正数。功能结果说明TEM1=ITEM2布尔值为ITEM1等于ITEM2的记录返回真值ITEM1/=ITEM2布尔值两个字符串不完全相同时返回真值,完全相同时返回0ITEM1ITEM2布尔值ITEM1小于ITEM2的记录返回真值ITEM1ITEM2布尔值ITEM1大于ITEM2的记录返回真值ITEM1=ITEM2布尔值ITEM1大于等于ITEM2的记录返回真值count_equal(ITEM1,LIST
7、)整数返回字段列表中等于ITEM1的值的个数,如果ITEM1为Null,则返回Nullcount_greater_than(ITEM1,LIST)整数返回字段列表中大于ITEM1的值的个数,如果ITEM1为Null,则返回Nullcount_less_than(ITEM1,LIST)整数返回字段列表中小于ITEM1的值的个数,如果ITEM1为Null,则返回Nullcount_not_equal(ITEM1,整数返回字段列表中不等于ITEM1的值的个数,如果ITEM1为Null,则返回Nullount_nulls(LIST)整数返回字段列表中Null值的个数date_before(DATE1,
8、DATE2)布尔值用于检查日期值的排序。如果DATE1早于DATE2,则返回真值max(ITEM1,ITEM2)Any返回ITEM1和ITEM2两项中较大的一个max_n(LIST)数值返回数值字段列表中的最大值,如果所有字段值为Null,则返回Nullmin(ITEM1,ITEM2)Any返回ITEM1和ITEM2两项中较小的一个min_n(LIST)数值返回数值字段列表中的最小值,如果所有字段值为Null,则返回Nulltime_before(TIME1,TIME2)布尔值用于检查时间值的排序。如果TIME1早于TIME2,则返回真值member(ITEM,LIST)布尔值如果ITEM是指
9、定LIST的成员,则返回真值,否则返回假值,还可以指定字段名称列表4. 逻辑函数MOLDER表达式可用来执行逻辑运算,主要功能如下。功能结果说明COND1 and COND2布尔值此运算为逻辑合取运算,当COND1与COND2同时为真时返回真值,如果COND1为假,则不求COND2的值,此时可以构造这样的合取,让COND1首先检验COND2中的运算是否合法,例如,length(Label)=6 and Label(6)=xCOND1 or COND2布尔值此运算为逻辑(包含性)析取运算,当COND1或COND2为真或这两者同时为真时,返回真值,如果COND1为真,则不求COND2的值not(C
10、OND)布尔值此运算为逻辑否运算,当COND为假时返回真,否则,此运算将返回值0If COND then EXPR1 else EXPR2 endifAny此运算为条件求值,如果COND为真,此运算将返回EXPR1的结果,否则,将返回EXPR2的求值结果If COND1 then EXPR1 Elseif COND2 then EXPR2 else EXPR_N endifAny此运算为多分支条件求值。如果COND1为真,此运算将返回EXPR1的结果,如果COND2为真,此运算将返回EXPR2的求值结果,否则,将返回EXPR_N的求值结果5. 数值函数MOLDER包含许多常用的数值函数,主要功
11、能如下。功能结果说明-NUM数值用于求NUM的相反数,返回具有相反符号的对应数字NUM1+NUM2数值返回NUM1与NUM2相加所得的和code-NUM2数值返回NUM1减去NUM2所得的差NUM1*NUM2数值返回NUM1与NUM2相乘所得的积NUM1/NUM2数值返回NUM1除以NUM2所得的商INT1 div INT2数值用于进行整数除法。返回INT1除以INT2所得的商INT1 rem INT2数值返回INT1除以INT2所得的余数,例如,INT1-(INT1 div INT2)*INT2INT1 mod INT2数值此函数已被rem函数取代,不宜再使用BASE * POWER数值返回
12、BASE的POWER次方,底和幂可以是任意数字(一种情况除外:如果POWER为除整数0之外其他类型的0,则BASE不能为0)。如果POWER为整数,则可通过将BASE连续乘POWER次计算出结果,因此,如果BASE为整数,则结果为整数。如果POWER为整数0,则结果将始终是与BASE类型相同的1。如果POWER不是整数,则用公式exp(POWER * log(BASE)计算结果abs(NUM)数值返回NUM的绝对值,结果始终是同一类型的数值exp(NUM)实数返回e的NUM次方(e为自然对数的底)fracof(NUM)实数返回NUM的小数部分,定义为NUM-intof(NUM)intof(NU
13、M)整数将其参数截为整数,返回与NUM符号相同的整数,取满足abs(INT)=abs(NUM)的最大值log(NUM)实数返回NUM的自然对数(以e为底),NUM不能为零(无论何种类型)log10(NUM)实数返回NUM以10为底的对数,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为整数,此运算将返回-1、0或1。如果NUM为实数,将返回-1.0、0.0或1.0,取决于NUM是负数、零还是正数sqrt(NUM)实数返回NUM的平方根,NUM必须是正数sum_n(LIST)数值返回数值字段列表中字段值的和,如果所有字段均为Null,则返回Null值mean_n(LIST)数值返回数值字段列表中字段值的均值,如果所有字段值均为Null值,则返回Null值sdev_n(LIST)数值返回数值字段列表中字段值的标准差,如果所有字段值均为Null值,则返回Null值6. 三角函数三角函数以角度为参数或返回结果为角度,无论哪种情况,角度单位(弧度或度