SPSS-Modeler常用函數(shù)簡介_第1頁
SPSS-Modeler常用函數(shù)簡介_第2頁
SPSS-Modeler常用函數(shù)簡介_第3頁
SPSS-Modeler常用函數(shù)簡介_第4頁
SPSS-Modeler常用函數(shù)簡介_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

SPSSModeler常用函數(shù)簡介SPSSModeler軟件包含多種功能豐富的函數(shù),幾乎涵蓋了我們?nèi)粘9ぷ鞯母鞣N需要,主要有信息函數(shù)、轉(zhuǎn)換函數(shù)、比較函數(shù)、邏輯函數(shù)、數(shù)值函數(shù)、三角函數(shù)、概率函數(shù)、位元整數(shù)運算、隨機函數(shù)、字符串函數(shù)、日期和時間函數(shù)、序列函數(shù)、全局函數(shù)、空值和Null值處理函數(shù)、特殊函數(shù)等15大類,本講義將逐一介紹并說明其注意事項。在本講義中涉及到的函數(shù),具體的字段格式按照如下約定表示:BOOL布爾值或標(biāo)志,例如真或假NUM、NUM1、NUM2任意數(shù)字REAL、REAL1、REAL2任意實數(shù),例如1.69、-7.8INT、INT1、INT2任意整數(shù),例如1或-6CHAR字符代碼,例如'D'STRING字符串,例如"bookID"LIST項目列表,例如["my""teacher"]ITEM字段,例如Customer或extract_conceptDATE其值具有DD-MON-YYYY這樣格式的日期字段,例如start_dateTIME其值具有HHMMSS這樣格式的時間字段,例如power_flux此外,本講義中的函數(shù)以函數(shù)、結(jié)果類型(整數(shù)、字符串等)和說明(如果有)各占一列的形式一一列舉說明。例如,對函數(shù)rem的說明如下。功能結(jié)果說明INT1remINT2數(shù)值返回INT1除以INT2所得的余數(shù),例如,INT1-(INT1divINT2)*INT21.信息函數(shù)信息函數(shù)用于深入了解特定字段的值。它們通常用于派生標(biāo)志字段。例如,可以使用@BLANK函數(shù)來創(chuàng)建一個標(biāo)志字段,以指示選定字段的值為空值的記錄。同樣,可以使用存儲類型函數(shù)(如is_string)來檢查某個字段的存儲類型。功能結(jié)果說明@BLANK(FIELD)布爾值根據(jù)上游類型節(jié)點或源節(jié)點(“類型”選項)中設(shè)置的空值處理規(guī)則對值為空值的所有記錄返回真值。注意,不能通過腳本調(diào)用此函數(shù)@NULL(ITEM)布爾值為未定義值的所有記錄返回真值。未定義值是系統(tǒng)Null值,在Modeler中顯示為$null$,注意:此功能無法通過腳本調(diào)用is_date(ITEM)布爾值為所有日期類型的記錄返回真值is_datetime(ITEM)布爾值為所有日期時間類型的記錄返回真值is_integer(ITEM)布爾值為所有整數(shù)類型的記錄返回真值is_number(ITEM)布爾值為所有數(shù)值類型的記錄返回真值is_real(ITEM)布爾值為所有實數(shù)類型的記錄返回真值is_string(ITEM)布爾值為所有字符串類型的記錄返回真值is_time(ITEM)布爾值為所有時間類型的記錄返回真值is_timestamp(ITEM)布爾值為所有時間戳類型的記錄返回真值2.轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)可用來構(gòu)建新字段和轉(zhuǎn)換現(xiàn)有文件的存儲類型。例如,可通過將字符串連接在一起或分拆字符串來形成新字符串。若要連接兩個字符串,請使用運算符“><”。例如,字段Site的值為"BRAMLEY",則"xx"><Site將返回""""請注意,轉(zhuǎn)換函數(shù)及其他要求特定類型輸入(如日期或時間值)的函數(shù)取決于“流選項”對話框中指定的當(dāng)前格式。例如,要將功能結(jié)果說明ITEM1><ITEM2字符串連接兩個字段的值,并返回結(jié)果字符串ITEM1、ITEM2to_integer(ITEM)整數(shù)將指定字段的存儲值轉(zhuǎn)換為整數(shù)to_real(ITEM)實數(shù)將指定字段的存儲值轉(zhuǎn)換為實數(shù)to_number(ITEM)數(shù)值將指定字段的存儲值轉(zhuǎn)換為數(shù)值to_string(ITEM)字符串將指定字段的存儲值轉(zhuǎn)換為字符串to_time(ITEM)時間將指定字段的存儲值轉(zhuǎn)換為時間to_date(ITEM)日期將指定字段的存儲值轉(zhuǎn)換為日期to_timestamp(ITEM)時間戳將指定字段的存儲值轉(zhuǎn)換為時間戳to_datetime(ITEM)日期時間將指定字段的存儲值轉(zhuǎn)換為日期時間值3.比較函數(shù)比較函數(shù)用于字段值的相互比較或與指定字符串進行比較。例如,可以使用“=”來檢查字符串是否相等。字符串相等的驗證示例:Class="class1"。對數(shù)值比較來說,大于表示離正無窮更近,小于表示離負無窮更近,即所有負數(shù)均小于任意正數(shù)。功能結(jié)果說明TEM1=ITEM2布爾值為ITEM1等于ITEM2的記錄返回真值ITEM1/=ITEM2布爾值兩個字符串不完全相同時返回真值,完全相同時返回0ITEM1<ITEM2布爾值ITEM1小于ITEM2的記錄返回真值ITEM1<=ITEM2布爾值ITEM1小于等于ITEM2的記錄返回真值ITEM1>ITEM2布爾值ITEM1大于ITEM2的記錄返回真值ITEM1>=ITEM2布爾值ITEM1大于等于ITEM2的記錄返回真值count_equal(ITEM1,LIST)整數(shù)返回字段列表中等于ITEM1的值的個數(shù),如果ITEM1為Null,則返回Nullcount_greater_than(ITEM1,LIST)整數(shù)返回字段列表中大于ITEM1的值的個數(shù),如果ITEM1為Null,則返回Nullcount_less_than(ITEM1,LIST)整數(shù)返回字段列表中小于ITEM1的值的個數(shù),如果ITEM1為Null,則返回Nullcount_not_equal(ITEM1,整數(shù)返回字段列表中不等于ITEM1的值的個數(shù),如果ITEM1為Null,則返回Nullount_nulls(LIST)整數(shù)返回字段列表中Null值的個數(shù)date_before(DATE1,DATE2)布爾值用于檢查日期值的排序。如果DATE1早于DATE2,則返回真值max(ITEM1,ITEM2)Any返回ITEM1和ITEM2兩項中較大的一個max_n(LIST)數(shù)值返回數(shù)值字段列表中的最大值,如果所有字段值為Null,則返回Nullmin(ITEM1,ITEM2)Any返回ITEM1和ITEM2兩項中較小的一個min_n(LIST)數(shù)值返回數(shù)值字段列表中的最小值,如果所有字段值為Null,則返回Nulltime_before(TIME1,TIME2)布爾值用于檢查時間值的排序。如果TIME1早于TIME2,則返回真值member(ITEM,LIST)布爾值如果ITEM是指定LIST的成員,則返回真值,否則返回假值,還可以指定字段名稱列表4.邏輯函數(shù)MODELER表達式可用來執(zhí)行邏輯運算,主要功能如下。功能結(jié)果說明COND1andCOND2布爾值此運算為邏輯合取運算,當(dāng)COND1與COND2同時為真時返回真值,如果COND1為假,則不求COND2的值,此時可以構(gòu)造這樣的合取,讓COND1首先檢驗COND2中的運算是否合法,例如,length(Label)>=6andLabel(6)='x'COND1orCOND2布爾值此運算為邏輯not(COND)布爾值此運算為邏輯否運算,當(dāng)COND為假時返回真,否則,此運算將返回值0IfCONDthenEXPR1elseEXPR2endifAny此運算為條件求值,如果COND為真,此運算將返回EXPR1的結(jié)果,否則,將返回EXPR2的求值結(jié)果IfCOND1thenEXPR1ElseifCOND2thenEXPR2elseEXPR_NendifAny此運算為多分支條件求值。如果COND1為真,此運算將返回EXPR1的結(jié)果,如果COND2為真,此運算將返回EXPR2的求值結(jié)果,否則,將返回EXPR_N的求值結(jié)果5.數(shù)值函數(shù)MODELER包含許多常用的數(shù)值函數(shù),主要功能如下。功能結(jié)果說明-NUM數(shù)值用于求NUM的相反數(shù),返回具有相反符號的對應(yīng)數(shù)字NUM1+NUM2數(shù)值返回NUM1與NUM2相加所得的和code-NUM2數(shù)值返回NUM1減去NUM2所得的差NUM1*NUM2數(shù)值返回NUM1與NUM2相乘所得的積NUM1/NUM2數(shù)值返回NUM1除以NUM2所得的商INT1divINT2數(shù)值用于進行整數(shù)除法。返回INT1除以INT2所得的商INT1remINT2數(shù)值返回INT1除以INT2所得的余數(shù),例如,INT1-(INT1divINT2)*INT2INT1modINT2數(shù)值此函數(shù)已被rem函數(shù)取代,不宜再使用BASE**POWER數(shù)值返回BASE的POWER次方,底和冪可以是任意數(shù)字(一種情況除外:如果POWER為除整數(shù)0之外其他類型的0,則BASE不能為0)。如果POWER為整數(shù),則可通過將BASE連續(xù)乘POWER次計算出結(jié)果,因此,如果BASE為整數(shù),則結(jié)果為整數(shù)。如果POWER為整數(shù)0,則結(jié)果將始終是與BASE類型相同的1。如果POWER不是整數(shù),則用公式exp(POWER*log(BASE))計算結(jié)果abs(NUM)數(shù)值返回NUM的絕對值,結(jié)果始終是同一類型的數(shù)值exp(NUM)實數(shù)返回e的NUM次方(e為自然對數(shù)的底)fracof(NUM)實數(shù)返回NUM的小數(shù)部分,定義為NUM-intof(NUM)intof(NUM)整數(shù)將其參數(shù)截為整數(shù),返回與NUM符號相同的整數(shù),取滿足abs(INT)<=abs(NUM)的最大值log(NUM)實數(shù)返回NUM的自然對數(shù)(以e為底),NUM不能為零(無論何種類型)log10(NUM)實數(shù)返回NUM以10為底的對數(shù),NUM不能為零(無論何種類型)。此函數(shù)定義為log(NUM)/log(10)negate(NUM)數(shù)值用于求NUM的相反數(shù),返回具有相反符號的對應(yīng)數(shù)字round(NUM)整數(shù)用于將NUM四舍五入取整數(shù),如果NUM為正數(shù),則用公式intof(NUM+0.5),如果NUM為負數(shù),則用公式intof(NUM-0.5)sign(NUM)數(shù)值用于確定NUM的符號,如果NUM為整數(shù),此運算將返回-1、0或1。如果NUM為實數(shù),將返回-1.0、0.0或1.0,取決于NUM是負數(shù)、零還是正數(shù)sqrt(NUM)實數(shù)返回NUM的平方根,NUM必須是正數(shù)sum_n(LIST)數(shù)值返回數(shù)值字段列表中字段值的和,如果所有字段均為Null,則返回Null值返回數(shù)值字段列表中字段值的均值,如果所有字段值均為Null值,則返回Null值返回數(shù)值字段列表中字段值的標(biāo)準(zhǔn)差,如果所有字段值均為Null值,則返回Null值6.三角函數(shù)三角函數(shù)以角度為參數(shù)或返回結(jié)果為角度,無論哪種情況,角度單位(弧度或度數(shù))均由相關(guān)流選項的設(shè)置控制。功能結(jié)果說明arccos(NUM)實數(shù)計算指定角度的反余弦值arccosh(NUM)實數(shù)計算指定角度的反雙曲余弦值arcsin(NUM)實數(shù)計算指定角度的反正弦值arcsinh(NUM)實數(shù)計算指定角度的反雙曲正弦值arctan(NUM)實數(shù)計算指定角度的反正切值arctan2(NUM_X,NUM_Y)實數(shù)計算NUM_Y/NUM_X的反正切值,然后使用兩個數(shù)的符號推導(dǎo)出象限信息。結(jié)果是范圍在-pi<ANGLE<=pi(弧度)-180<ANGLE<=180(度數(shù))間的實數(shù)arctanh(NUM)實數(shù)計算指定角度的反雙曲正切值cos(NUM)實數(shù)計算指定角度的余弦值cosh(NUM)實數(shù)計算指定角度的雙曲余弦值pi實數(shù)此常數(shù)是pi的最佳實數(shù)近似值sin(NUM)實數(shù)計算指定角度的正弦值sinh(NUM)實數(shù)計算指定角度的雙曲正弦值tan(NUM)實數(shù)計算指定角度的正切值tanh(NUM)實數(shù)計算指定角度的雙曲正切值7.概率函數(shù)概率函數(shù)返回基于各種分布的概率,主要功能如下。功能結(jié)果說明cdf_chisq(NUM,DF)實數(shù)返回具有指定自由度的卡方分布中某個值將會小于指定數(shù)值的概率cdf_f(NUM,DF1,DF2)實數(shù)返回自由度為DF1和DF2的F分布中某個值將會小于指定數(shù)值的概率cdf_normal(NUM,MEAN,STDDEV)實數(shù)返回具有指定均值和標(biāo)準(zhǔn)差的正態(tài)分布中某個值將會小于指定數(shù)值的概率cdf_t(NUM,DF)實數(shù)返回具有指定自由度的學(xué)生氏t分布中某個值將會小于指定數(shù)值的概率8.位元整數(shù)運算借助上述函數(shù),可以按表示二進制補碼值的位模式(其中位的位置N的權(quán)重為2**N)來操控整數(shù)。位從0開始往上數(shù),這些運算就好像是把整數(shù)的符號位向左無限延伸,因此,最高有效位前的所有位,正整數(shù)均為0,負整數(shù)均為1,注意:不能從腳本中調(diào)用位元函數(shù)。功能結(jié)果說明~~INT1整數(shù)產(chǎn)生整數(shù)INT1的位元補碼,即INT1每個為0的位經(jīng)過求補運算后結(jié)果均為1。對于求補運算,始終有~~INT=-(INT+1)成立。此功能無法通過腳本調(diào)用INT1||INT2整數(shù)此運算的結(jié)果是INT1和INT2的位元“或”,即INT1和INT2中的一個對應(yīng)位是1或兩者的對應(yīng)位同時是1時,“或”的結(jié)果為1INT1||/&INT2整數(shù)此運算的結(jié)果是INT1和INT2的位元“異或”,即INT1和INT2中的一個對應(yīng)位是1但非同時為1時“異或”后的結(jié)果為1INT1&&INT2產(chǎn)生整數(shù)INT1和INT2的位元“與”,即INT1和INT2的對應(yīng)位同時為1時進行“與”運算的結(jié)果才為1INT1&&~~INT2將對INT1和INT2位元求補后的結(jié)果進行位元“與”運算,即INT1的對應(yīng)位是1且INT2的對應(yīng)位是0時進行這一運算后的結(jié)果才為1。此運算與INT1&&(~~INT2)運算的結(jié)果相同,可用于清除在INT2中設(shè)置的INT1位INT<<N產(chǎn)生INT1向左偏移N個位置的位元模式,如果N為負值,則向右移INT>>N產(chǎn)生INT1向右偏移N個位置的位元模式,如果N為負值,則向左移INT1&&=_0INT2相當(dāng)于布爾表達式INT1&&INT2/==0,但效率更高INT1&&/=_0INT2相當(dāng)于布爾表達式INT1&&INT2==0,但效率更高integer_bitcount(INT)計數(shù)INT的二進制補碼表示中1或0的個數(shù)。如果INT是非負數(shù),則N為1的個數(shù)。如果INT為負數(shù),則N為0的個數(shù)。非負整數(shù)中將有無數(shù)個0,而負整數(shù)中將有無數(shù)個1。對于此運算,始終有integer_bitcount(INT)=integer_bitcount(-(INT+1))成立integer_leastbit(INT)返回整數(shù)INT中最低有效位組的數(shù)位位置N。N是2的最大權(quán)重,據(jù)此INT將進行準(zhǔn)確劃分integer_length(INT)以二進制補碼的整數(shù)形式返回INT的數(shù)位長度,即N是最小整數(shù)(INT<(1<<N)ifINT>=0INT>=(-1<<N)ifINT<0)。如果INT為非否數(shù),則表示為無符號整數(shù)的INT需要至少N位的一個字段。另外,最少需要用N+1個數(shù)位來表示有符號整數(shù)INT(不論符號是正是負)testbit(INT,N)檢驗整數(shù)INT中位置N處的數(shù)位,并以布爾值的形式(真表示狀態(tài)為1,假表示狀態(tài)為0)返回數(shù)位N的狀態(tài)9.隨機函數(shù)以下函數(shù)用于隨機選擇項目或隨機生成數(shù)值,主要功能如下。功能結(jié)果說明oneof(LIST)Any返回一個從LIST中隨機選擇的元素。應(yīng)以[ITEM1,ITEM2,…,ITEM_N]的形式輸入列表項,注意,還可以指定字段名列表random(NUM)數(shù)值返回類型相同(INT或REAL)的均勻分布隨機數(shù),其范圍從1~NUM。如果使用的是整數(shù),則僅返回整數(shù)。如果使用(十進制)實數(shù),則返回實數(shù)(由流選項確定的十進制精度)。此函數(shù)所返回的最大隨機數(shù)可以等于NUMrandom0(NUM)數(shù)值此函數(shù)的屬性與random(NUM)相同,但將從0開始取值。它所返回的最大隨機數(shù)決不會等于X10.字符串函數(shù)在MODELER中可以對字符串執(zhí)行以下操作:比較字符串、創(chuàng)建字符串、訪問字符串。在MODELER中,字符串是一對英文雙引號("stringquotes")之間的一組字符序列。這里所用的字符(CHAR)可以是任何一個字母、數(shù)字字符。這些字符已在MODELER表達式中使用反單引號并以'<character>'的形式聲明過,例如'z'、'A'或'2'。如果字符超出邊界或為字符中的負指數(shù),則結(jié)果將返回Null值。功能結(jié)果說明allbutfirst(N,STRING)字符串返回字符串STRING除去前N個字符后所生成的新字符串a(chǎn)llbutlast(N,STRING)字符串返回字符串STRING除去后N個字符后所生成的新字符串a(chǎn)lphabefore(STRING1,STRING2)布爾值用于檢查字符串的數(shù)字字母順序,如果STRING1在STRING2之前,則返回真值endstring(LENGTH,STRING)字符串從指定字符串中抽取后n個字符,如果字符串長度小于或等于指定長度,則字符串不發(fā)生改變hasendstring(STRING,SUBSTRING)整數(shù)此函數(shù)的功能等同于isendstring(SUB_STRING,STRING)hasmidstring(STRING,SUBSTRING)整數(shù)此函數(shù)的功能等同于ismidstring(SUB_STRING,STRING)(嵌入的子字符串)hasstartstring(STRING,SUBSTRING)整數(shù)此函數(shù)的功能等同于isstartstring(SUB_STRING,STRING)hassubstring(STRING,N,SUBSTRING)整數(shù)issubstring(SUB_STRING,N,STRING),這里N的默認值為1count_substring(STRING,SUBSTRING)整數(shù)返回字符串中指定字符串出現(xiàn)的次數(shù)。例如,count_substring("foooo.txt","oo")返回結(jié)果為3hassubstring(STRING,SUBSTRING)整數(shù)此函數(shù)的功能等同于issubstring(SUB_STRING,1STRING),這里N的默認值為1isalphacode(CHAR)布爾值如果CHAR是字符代碼,且為字母的指定字符串中的某個字符,則返回真值,否則,返回值為0,例如isalphacode(produce_num(1))isendstring(SUBSTRING,STRING)整數(shù)如果字符串STRING以子字符串SUB_STRING結(jié)尾,則將返回STRING中子字符串SUB_STRING的整數(shù)下標(biāo)。此外,此函數(shù)的返回結(jié)果為0islowercode(CHAR)布爾值如果CHAR是指定字符串(通常為字段名)中的某個小寫字母字符,則將返回真值,否則,該函數(shù)的返回值為0,例如islowercode('')->T和islowercode(country_name(2))->T均為有效表達式ismidstring(SUBSTRING,STRING)整數(shù)如果SUB_STRING是STRING的子字符串,但首字符或尾端字符與STRING不同,則將返回此子字符串的起始下標(biāo),否則,此函數(shù)將返回值0isnumbercode(CHAR)布爾值如果指定字符串(通常為字段名)的CHAR為數(shù)字字符,則返回真值,否則,返回值為0,例如isnumbercode(product_id(2))isstartstring(SUBSTRING,STRING)整數(shù)如果字符串STRING以子字符串SUB_STRING開頭,則該函數(shù)將返回下標(biāo)1,除此以外,該函數(shù)的返回結(jié)果為0issubstring(SUBSTRING,N,STRING)整數(shù)從字符串STRING中搜索(從第N個字符開始)等于SUB_STRING的子字符串,如果找到子字符串,則該函數(shù)返回相匹配子字符串的起始下標(biāo),否則,此函數(shù)將返回值0。如果未指定N,則此函數(shù)的默認值為1issubstring(SUBSTRING,STRING)整數(shù)從字符串STRING中搜索(從第N個字符開始)等于SUB_STRING的子字符串。如果找到子字符串,則該函數(shù)返回相匹配子字符串的起始下標(biāo),否則,此函數(shù)將返回值0,如果未指定N,則此函數(shù)的默認值為1issubstring_count(SUBSTRING,N,STRING):整數(shù)返回STRING中第N次出現(xiàn)的SUBSTRING的索引。如果SUBSTRING的出現(xiàn)次數(shù)少于N次,則返回結(jié)果為0issubstring_lim(SUBSTRING,N,STARTLIM,ENDLIM,STRING)整數(shù)此函數(shù)的功能與issubstring相同,但匹配必須從下標(biāo)STARTLIM或其之前開始,并且必須從下標(biāo)ENDLIM或其之前結(jié)束。若為任一參數(shù)提供假值,則可禁用STARTLIM或ENDLIM限制,例如,issubstring_lim(SUB_STRING,N,false,false,STRING)與issubstring功能相同isuppercode(CHAR)布爾值如果CHAR是大寫字母字符,則返回真值,除此以外,該函數(shù)的返回值為0,例如isuppercode(country_name(2))->T為有效表達式last(CHAR)字符串返回STRING(長度至少為一個字符)的最后一個字符CHARlength(STRING)整數(shù)返回字符串STRING的長度,即字符串字符數(shù)locchar(CHAR,N,STRING)整數(shù)用于標(biāo)識符號字段中的字符位置。此函數(shù)將在字符串STRING中搜索字符CHAR(從STRING的第N個字符開始搜索)。此函數(shù)的返回值表示(從N開始)找到字符的位置。如果未找到字符,則函數(shù)返回結(jié)果為0。如果此函數(shù)存在無效偏移(N)(例如,某個偏移超出了字符串長度),則函數(shù)返回結(jié)果為$null$,例如locchar('n',2,web_page)在名為web_page的字段中從第2個字符開始搜索字符'n'。注意:請用反單引號將指定字符引起locchar_back(CHAR,N,STRING)整數(shù)此函數(shù)類似于locchar函數(shù),所不同的是搜索反向進行且從第N個字符開始。例如,locchar_back('n',9,web_page)將從web_page的第9個字符開始搜索并且從后向前移動搜索。如果此函數(shù)擁有無效偏移(例如偏移超出字符串的長度),則此函數(shù)的返回結(jié)果為$null$。理想的情形是:將locchar_back與length(<field>)函數(shù)結(jié)合使用,以便動態(tài)地使用字段當(dāng)前值的長度,例如locchar_back('n',(length(web_page)),web_page)lowertoupper(CHAR)lowertoupper(STRING)CHAR或String可以輸入字符或字符串,此函數(shù)將返回一個類型相同項,小寫字符將轉(zhuǎn)換為大寫字符。例如,有效表達式:lowertoupper("Mystring")和lowertoupper(field_name(2))matches布爾值如果字符串與指定模式(例如company_namematches"SPSS")相匹配,將返回真值。模式必須是字符串字符,而不能是包含模式的字段名。問號(?)包含在模式中以便匹配某一字符,星號(*)可以匹配零個或多個字符。若要匹配文字問號或星號(而不是將其用作通配符),可使用反斜杠(\)作為轉(zhuǎn)義符號replace(SUBSTRING,NEWSUBSTRING,STRING)字符串在指定STRING中,用NEWSUBSTRING替換SUBSTRING中的所有示例replicate(COUNT,STRING)字符串返回一個由原始字符串指定個數(shù)的復(fù)本所構(gòu)成的字符串stripchar(CHAR,STRING)字符串借助此函數(shù),可從某個字符串或字段中除去指定字符。例如,可以使用此函數(shù)從數(shù)據(jù)中除去多余符號(如貨幣符號)以獲取一個簡單的數(shù)值或名稱。例如,通過語法stripchar('$','Cost')可以除去所有值中的美元符號并返回一個新字段。注:請用反單引號將指定字符引起skipchar(CHAR,N,STRING)整數(shù)在字符串STRING中搜索除CHAR以外的字符(從第N個字符開始搜索)。此函數(shù)返回一個表示發(fā)現(xiàn)子字符串位置的整數(shù)子字符串,如果從第N個位置開始的每個字符是CHAR,則返回0。如果函數(shù)有一無效偏移(例如,超出字符串長度的偏移),則該函數(shù)返回$null$。locchar函數(shù)經(jīng)常與skipchar配合使用以確定N(開始搜索字符串的位置)的值。例如skipchar('s',(locchar('s',1,"MyString")),"MyString")skipchar_back(CHAR,N,STRING)整數(shù)與skipchar函數(shù)類似,所不同的是搜索反向進行并且從第N個字符開始startstring(LENGTH,STRING)字符串從指定字符串中抽取第n個字符。如果字符串長度小于或等于指定長度,則字符串不發(fā)生改變strmember(CHAR,STRING)字符串等同于locchar(CHAR,1,STRING)函數(shù)。此函數(shù)返回整數(shù)子字符串或0,返回的整數(shù)子字符串表示CHAR第一次出現(xiàn)的位置。如果函數(shù)存在無效偏移(例如,超出字符串長度的偏移),則返回$null$subscrs(N,STRING)CHAR返回輸入字符串STRING的第N個字符CHAR。此函數(shù)也可采用簡寫形式:STRING(N)->CHAR。例如,lowertoupper("name"(1))就是一個有效表達式substring(N,LEN,STRING)字符串返回從位于下標(biāo)N的字符開始的字符串SUB_STRING,此子字符串由字符串STRING的LEN個字符組成substring_between(N1,N2,STRING)字符串返回STRING的子字符串,該字符串從下標(biāo)N1開始并結(jié)束于下標(biāo)N2trim(STRING)字符串除去指定字符串的前導(dǎo)和尾部空格trim_start(STRING)字符串除去指定字符串的前導(dǎo)空格trimend(STRING)字符串除去指定字符串的尾部空格unicode_char(NUM)CHAR返回Unicode值為NUM的字符unicode_value(CHAR)NUM返回CHAR的Unicode值uppertolower(CHAR)uppertolower(STRING)CHAR或String可以輸入字符串或字符,此函數(shù)將返回一個類型相同項,大寫字符將轉(zhuǎn)換為相應(yīng)的小寫字符。注意:指定字符串時一定要用英文雙引號,而指定字符時一定要用反向單引號。簡單字段名不必使用引號11.日期和時間函數(shù)MODELER包含一系列處理含有字符串日期時間存儲變量的字段函數(shù),這些字符串變量代表日期和時間。可在“流屬性”對話框中指定具體到每個流的日期和時間格式。日期和時間函數(shù)根據(jù)當(dāng)前選定的格式來解析日期和時間字符串。如果用兩位數(shù)指定日期中的年(即未指定世紀(jì)),則Modeler將采用“流屬性”對話框中所指定的默認世紀(jì),注意:不能從腳本中調(diào)用日期和時間函數(shù)。日期和時間函數(shù)的主要功能如下。功能結(jié)果說明@TODAY字符串如果在“流屬性”對話框中選擇翻轉(zhuǎn)日/分鐘,該函數(shù)將返回采用當(dāng)前日期格式的當(dāng)前日期字符串。如果采用兩位數(shù)的日期格式且未選擇翻轉(zhuǎn)日/分鐘,該函數(shù)將在當(dāng)前服務(wù)器上返回$null$。注意:此功能無法通過腳本調(diào)用date_before(DATE1,DATE2)布爾值如果DATE1所表示的日期在DATE2之前,則返回真值。除此以外,此函數(shù)的返回結(jié)果為0date_days_difference(DATE1,DATE2)整數(shù)以整數(shù)的形式返回從日期DATE1到日期DATE2的天數(shù)。如果DATE2在DATE1之前,則該函數(shù)返回負值date_in_days(DATE)整數(shù)以整數(shù)的形式返回從基線日期到日期DATE的天數(shù)。如果DATE在基線日期之前,則該函數(shù)返回負數(shù)。為了計算正常進行,必須包含有效日期。例如,不能將2001年2月29日指定為日期。因為2001年并非閏年,所以上述日期不存在date_in_months(DATE)實數(shù)以實數(shù)的形式返回從基線日期到日期DATE的年數(shù)。這是基于每月30.0天的近似數(shù)字。如果DATE在基線日期之前,則該函數(shù)返回負數(shù)date_in_weeks(DATE)實數(shù)以實數(shù)的形式返回從基線日期到日期DATE的年數(shù)。這基于每周7天。如果DATE在基線日期之前,則該函數(shù)返回負數(shù)date_in_years(DATE)實數(shù)以實數(shù)的形式返回從基線日期到日期DATE的年數(shù)。這是基于每年365天的近似數(shù)字。如果DATE在基線日期之前,則該函數(shù)返回負數(shù)date_months_difference(DATE1,DATE2)實數(shù)以實數(shù)的形式返回從DATE1到DATE2的月數(shù)。這是基于每月30天的近似數(shù)字。如果DATE2在DATE1之前,則該函數(shù)返回負值datetime_date(YEAR,MONTH,DAY)日期創(chuàng)建給定YEAR、MONTH、DAY的日期值,參數(shù)必須為整數(shù)datetime_date(ITEM)日期返回給定ITEM(可以是字符串、數(shù)值、日期或時間戳)的日期值。函數(shù)datetime_date(STRING)將通過解析采用當(dāng)前日期格式的字符串來創(chuàng)建日期。只有“流屬性”對話框中指定的日期格式正確,此函數(shù)方能成功執(zhí)行。函數(shù)datetime_date(NUMBER)將根據(jù)數(shù)值(自基線日期或紀(jì)元以來的秒數(shù))創(chuàng)建日期。不足一天的部分將被截斷。而函數(shù)datetime_date(DATE)和datetime_date(TIMESTAMP)將返回未更改的日期或時間戳的日期部分datetime_day(DATE)整數(shù)對給定的DATE或時間戳,返回其所在月份的天數(shù)據(jù)。返回結(jié)果是范圍為1~31的整數(shù)datetime_day_name(DAY)字符串返回給定DAY的全稱。參數(shù)必須是1(周日)~7(周六)之間的整數(shù)datetime_hour(TIME)整數(shù)返回TIME或時間戳的小時數(shù),返回結(jié)果是從0~23之間的整數(shù)datetime_in_seconds(DATETIME)實數(shù)返回日期時間DATETIME中的秒數(shù)datetime_minute(TIME)整數(shù)返回來自TIME或時間戳的分鐘數(shù)。返回結(jié)果是范圍為0~59的整數(shù)datetime_month(DATE)整數(shù)返回來自DATE或時間戳的月數(shù)。返回結(jié)果是范圍為1~12的整數(shù)datetime_month_name(MONTH)字符串返回給定MONTH的全稱,參數(shù)必須是1~12之間的整數(shù)datetime_now時間戳以時間戳形式返回當(dāng)前時間datetime_second(TIME)整數(shù)返回來自TIME或時間戳的秒數(shù)。返回結(jié)果是從0~59之間的整數(shù)datetime_day_short_name(DAY)字符串返回給定DAY的縮寫。參數(shù)必須是1(周日)~7(周六)之間的整數(shù)datetime_month_short_name(MONTH)字符串返回給定MONTH的縮寫。參數(shù)必須是1~12之間的整數(shù)datetime_time(HOUR,MINUTE,SECOND)時間返回指定HOUR、MINUTE和SECOND的時間值。參數(shù)必須為整數(shù)datetime_time(ITEM)時間返回給定ITEM的時間值datetime_timestamp(YEAR,MONTH,DAY,HOUR,MINUTE,SECOND)時間戳返回指定YEAR、MONTH、DAY、HOUR、MINUTE以及SECOND的時間戳值datetime_timestamp(DATE,TIME)時間戳返回給定DATE和TIME的時間戳值datetime_timestamp(NUMBER)時間戳返回給定秒數(shù)的時間戳值datetime_weekday(DATE)整數(shù)對給定DATE或時間戳,返回其所在周的天數(shù)據(jù)datetime_year(DATE)整數(shù)返回來自DATE或時間戳的年,返回結(jié)果為整數(shù),如2002date_weeks_difference(DATE1,DATE2)實數(shù)以實數(shù)的形式返回從日期DATE1至日期DATE2的周數(shù)(基于每周7天)。如果DATE2在DATE1之前,則該函數(shù)返回負值date_years_difference(DATE1,DATE2)實數(shù)以實數(shù)的形式返回從日期DATE1至日期DATE2的年數(shù)。這是基于每年365天的近似數(shù)字。如果DATE2在DATE1之前,則該函數(shù)返回負值time_before(TIME1,TIME2)布爾值如果TIME1表示的時間早于TIME2表示的時間,則返回真值。除此以外,此函數(shù)的返回結(jié)果為0time_hours_difference(TIME1,TIME2)實數(shù)以實數(shù)的形式返回時間TIME1和TIME2之間的時間差。如果在“流屬性”對話框中選擇翻轉(zhuǎn)日/分鐘,則用TIME1的較大值表示前一天。如果不選擇翻轉(zhuǎn)日選項,則較大的TIME1值將造成返回值為負數(shù)time_in_hours(TIME)實數(shù)以實數(shù)的形式返回TIME所表示的小時數(shù)。例如,采用時間格式HHMM時,表達式time_in_hours('0130')的返回值為1.5time_in_mins(TIME)實數(shù)以實數(shù)的形式返回TIME所表示的分鐘數(shù)time_in_secs(TIME)整數(shù)以實數(shù)的形式返回TIME所表示的秒數(shù)time_mins_difference(TIME1,TIME2)實數(shù)以實數(shù)的形式返回時間TIME1和TIME2之間的時間差。如果在“流選項”對話框中選擇翻轉(zhuǎn)日/分鐘,則將采用TIME1的較大值來指代前一天(僅在當(dāng)前格式中指定分和秒時,指代前一小時)。如果不選擇翻轉(zhuǎn)日選項,TIME1的較大值會造成返回值為負數(shù)time_secs_difference(TIME1,TIME2)整數(shù)以整數(shù)的形式返回時間TIME1和TIME2之間的秒數(shù)差。如果在“流選項”對話框中選擇翻轉(zhuǎn)日/分鐘,則將采用TIME1的較大值來指代前一天(僅在當(dāng)前格式中指定分和秒時,指代前一小時)。如果不選擇翻轉(zhuǎn)日選項,則較大的TIME1值將造成返回值為負數(shù)12.序列函數(shù)對于某些操作而言,事件序列很重要。Modeler應(yīng)用程序可使您處理以下記錄序列:序列和時間序列、序列函數(shù)、記錄索引、求值的平均數(shù)、總和以及對值進行比較等。對于許多應(yīng)用程序,每個通過流傳遞的記錄可以看成是獨立于所有其他記錄的單個案例。此種情況下,記錄的順序通常并不重要。然而對于某些類別的問題,記錄序列非常重要。這些一般是發(fā)生在時間序列中的情況,其中記錄序列代表事件的有序排列。每條記錄代表著時間中的某個特定時刻的快照,大部分最重要的信息可能并未包含在瞬時值中,而是包含在隨時間的流逝、不斷變更發(fā)展的方式中。通過以下特征可以立即識別出序列和特殊函數(shù):這些函數(shù)的前綴均為“@”;函數(shù)名稱采用大寫。序列函數(shù)可以引用節(jié)點當(dāng)前處理的記錄、已通過節(jié)點的記錄,甚至是尚未通過節(jié)點的記錄。序列函數(shù)可與其他MODELER表達式組件自由組合,雖然某些函數(shù)對參數(shù)有所限制。例如:您會發(fā)現(xiàn)了解自某一特定事件發(fā)生或條件為真以來的時間長度非常有用。使用函數(shù)@SINCE可實現(xiàn)上述目的,例如:@SINCE(Income>Outgoings)函數(shù)返回最后一條滿足此條件記錄的偏移量,即在此記錄之前滿足條件的記錄數(shù)。如果條件從不為真,則@SINCE返回@INDEX+1。有時您可能需要在@SINCE所用的表達式中引用當(dāng)前記錄的值,此時可以使用函數(shù)@THIS指定一個始終應(yīng)用于當(dāng)前記錄的字段名。若要找出最后一條滿足Concentration字段值是當(dāng)前記錄兩倍的記錄的偏移量,可使用表達式:@SINCE(Concentration>2*@THIS(Concentration)),有時,當(dāng)前記錄的@SINCE函數(shù)的定義條件為真,例如:@SINCE(ID==@THIS(ID)),基于這種原因,@SINCE函數(shù)將不對當(dāng)前記錄的條件求值。如果要對當(dāng)前記錄以及前面記錄的條件求值,請使用類似函數(shù)@SINCE0;如果當(dāng)前記錄的條件為真,則@SINCE0返回值為0。注意:不得從腳本調(diào)用@函數(shù)。序列函數(shù)的主要功能如下。功能結(jié)果說明MEAN(FIELD)實數(shù)返回指定的FIELD或FIELDS值的平均值@MEAN(FIELD,EXPR)實數(shù)返回FIELD值的平均值,這些字段來自當(dāng)前節(jié)點所接收的最后EXPR個記錄(包括當(dāng)前記錄)。FIELD必須是數(shù)值型字段的名稱。EXPR可以是任何值為大于0的整數(shù)的表達式。如果EXPR被忽略或超出了目前已接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的平均值。注意:此功能無法通過腳本調(diào)用@MEAN(FIELD,EXPR,INT)實數(shù)返回FIELD值的平均值,這些字段來自當(dāng)前節(jié)點所接收的最后EXPR個記錄(包括當(dāng)前記錄)。FIELD必須是數(shù)值型字段的名稱。EXPR可以是任何值為大于0的整數(shù)的表達式。如果EXPR被忽略或超出了目前已接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的平均值。INT指定要向后查看的值的最大數(shù)量。這比使用兩個參數(shù)更為有效@DIFF1(FIELD)實數(shù)返回FIELD1的一階微分差,因此單參數(shù)形式將返回該字段當(dāng)前值和前一個值的差。如果之前的相關(guān)記錄不存在,則返回0@DIFF1(FIELD1,FIELD2)實數(shù)兩參數(shù)形式給出了FIELD1對FIELD2的一階微分差。如果之前的相關(guān)記錄不存在,26則返回0。@DIFF2(FIELD)實數(shù)返回FIELD1的二階微分差。因此單參數(shù)形式將返回該字段當(dāng)前值和前一個值的差。如果之前的相關(guān)記錄不存在,則返回0。@DIFF2(FIELD1,FIELD2)實數(shù)兩參數(shù)形式給出了FIELD1對FIELD2的一階微分差。如果之前的相關(guān)記錄不存在,則返回0@INDEX整數(shù)返回當(dāng)前記錄的索引。當(dāng)記錄到達當(dāng)前節(jié)點時,將為其分配索引。為第一條記錄分配索引1,每條后續(xù)記錄的索引以1遞增@LAST_NON_BLANK(FIELD)Any根據(jù)上游源或類型節(jié)點中的定義,返回為非空值的FIELD的前一個值。如果目前所讀取的FIELD中沒有非空值,則返回$null$。注意,可以為每個字段單獨定義空值(又稱用戶默認值)@MAX(FIELD)數(shù)值返回指定FIELD的最大值@MAX(FIELD,EXPR)數(shù)值返回目前為止所接收的最后EXPR條記錄的FIELD字段(包括當(dāng)前字段)的最大值。FIELD必須是數(shù)值型字段的名稱。EXPR可以是值為大于0的整數(shù)的任意表達式@MAX(FIELD,EXPR,INT)數(shù)值返回目前為止所接收的最后EXPR條記錄的FIELD字段(包括當(dāng)前字段)的最大值。FIELD必須是數(shù)值型字段的名稱。EXPR是任何值為大于0的整數(shù)的表達式。如果EXPR被忽略或超出了目前已接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的最大值。INT指定要向后查看的值的最大數(shù)量。這比使用兩個參數(shù)更為有效@MIN(FIELD)數(shù)值返回指定FIELD的最小值@MIN(FIELD,EXPR)數(shù)值返回目前為止所接收的最后EXPR條記錄的FIELD字段(包括當(dāng)前字段)的最小值。FIELD必須是數(shù)值型字段的名稱。EXPR可以是值為大于0的整數(shù)的任意表達式@MIN(FIELD,EXPR,INT)數(shù)值返回目前為止所接收的最后EXPR條記錄的FIELD字段(包括當(dāng)前字段)的最小值。FIELD必須是數(shù)值型字段的名稱。EXPR可以是任何值為大于0的整數(shù)的表達式。如果EXPR被忽略或超出了目前已接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的最小值。INT指定要向后查看的值的最大數(shù)量,這比使用兩個參數(shù)更為有效@OFFSET(FIELD,EXPR)Any檢索前一條或下一條記錄中給定字段的值。返回與當(dāng)前記錄之間偏移量值為EXPR的記錄中名為FIELD的字段的值。如果EXPR為(字符)整數(shù),則其可能有正負之分;正偏移是指某條記錄已經(jīng)傳遞,而負偏移則為某條尚未到達的記錄指定了“期待”。例如,@OFFSET(Status,1)返回前一條記錄中Status字段的值,而@OFFSET(Status,-4)“超前查看”序列的4條記錄(即未通過節(jié)點傳遞的記錄),以獲取字段值。EXPR依舊可以是任意的MODELER表達式,將通過此表達式給出用于當(dāng)前記錄的偏移值。此時建議在該函數(shù)中采用三種參數(shù)以提高性能。如果表達式返回的不是非負整數(shù),將產(chǎn)生錯誤,即計算的期待偏移量不合法@OFFSET(FIELD,EXPR,INT)Any與@OFFSET函數(shù)執(zhí)行相同的操作,但附帶第三個參數(shù)INT(用于指定向后查看值的最大數(shù)量)。當(dāng)從表達式計算偏移時,建議采用第3個參數(shù)來提高性能。例如,通過表達式@OFFSET(Foo,Month,12),系統(tǒng)將知道僅保留Foo的最后12個值,否則,系統(tǒng)將存儲所有滿足條件的值。對于固定偏移量(包括必須固定的負“期待”偏移量),第3個參數(shù)將變得毫無意義,建議使用該函數(shù)的雙參數(shù)版本@SDEV(FIELD)實數(shù)返回指定的FIELD或FIELDS值的標(biāo)準(zhǔn)差@SDEV(FIELD,EXPR)實數(shù)返回當(dāng)前節(jié)點所接收的最后EXPR個記錄(包括當(dāng)前記錄)的FIELD值的標(biāo)準(zhǔn)偏差。FIELD必須是數(shù)值型字段的名稱。EXPR可以是值為大于0的整數(shù)的任意表達式。如果EXPR被忽略或者超出了目前為止所接收到的記錄數(shù),則返回目前為止接收到的所有記錄的標(biāo)準(zhǔn)差@SDEV(FIELD,EXPR,INT)實數(shù)返回當(dāng)前節(jié)點所接收的最后EXPR個記錄(包括當(dāng)前記錄)的FIELD值的標(biāo)準(zhǔn)偏差。FIELD必須是數(shù)值型字段的名稱。EXPR可以是任何值為大于0的整數(shù)的表達式。如果EXPR被忽略或超出了目前所接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的標(biāo)準(zhǔn)差。INT指定要向后查看的值的最大數(shù)量。這比使用兩個參數(shù)更為有效@SINCE(EXPR)Any如果EXPR(可以是任何的MODELER表達式)的結(jié)果為真,則返回已傳遞的記錄數(shù)@SINCE(EXPR,INT)Any添加第2個參數(shù)(INT)時,用于指定向后查看的最大記錄數(shù)。如果EXPR結(jié)果不為真,則INT為@INDEX+1@SINCE0(EXPR)Any對于當(dāng)前記錄,@SINCE不返回任何值;而如果當(dāng)前記錄的EXPR結(jié)果為真,則@SINCE0返回0@SINCE0(EXPR,INT)Any添加第2個參數(shù)(INT)時,用于指定向后查看的最大記錄數(shù)@SUM(FIELD)數(shù)值返回指定字段FIELD或FIELDS的值的和@SUM(FIELD,EXPR)數(shù)值返回當(dāng)前節(jié)點所接收的最后EXPR個記錄(包括當(dāng)前記錄)的FIELD值的總和。FIELD必須是數(shù)值型字段的名稱。EXPR可以是任何值為大于0的整數(shù)表達式。如果EXPR被忽略或超出了目前所接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的和@SUM(FIELD,EXPR,INT)數(shù)值返回當(dāng)前節(jié)點所接收的最后EXPR個記錄(包括當(dāng)前記錄)的FIELD值的總和。FIELD必須是數(shù)值型字段的名稱。EXPR可以是任何值為大于0的整數(shù)的表達式。如果EXPR被忽略或超出了目前所接收的記錄數(shù),則返回目前為止接收到的所有記錄數(shù)的和。INT指定要向后查看的值的最大數(shù)量。這比使用兩個參數(shù)更為有效@THIS(FIELD)Any返回字段當(dāng)前記錄中字段名為FIELD的值,僅用于@SINCE表達式13.全局函數(shù)函數(shù)@MEAN、@SUM、@MIN、@MAX和@SDEV用于處理所有已讀取的記錄(包括當(dāng)前記錄)。但在某些時候,它可用于檢測如何將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論