1.數(shù)值相關(guān)的函數(shù)
? ?obs(x):?返回絕對(duì)值肆良。 exp(x):?返回x的指數(shù)值窗市。??sqrt(x):返回x的平方栗菜。
? ?log(x):?返回x的自然對(duì)數(shù)林束。 log10(x):返回x以10為底的對(duì)數(shù)像棘。int(x):返回x的整數(shù)部分。
? ? mod(x, y):?返回x除以y的余數(shù)壶冒。 round(x,舍入值):根據(jù)舍入值對(duì)x進(jìn)行四舍五入缕题,round(4.8,2)=4,?將4.8舍入到最接近的能被2?整除的數(shù)值(0,2,4,6....,而4是最接近的)胖腾。
? ?ceil(x):返回>=x的最小整數(shù)烟零。??floor(x):返回<=x的最大整數(shù)。
? ?max(X1,.....,Xn): 取X1,.....,Xn中的最大值胸嘁。? ? ?min(X1,.....,Xn):取X1,.....,Xn中的最大值瓶摆。
? sign(x):?x<0時(shí)返回-1凉逛,x>0時(shí)返回1性宏,x=0時(shí)返回0。
2.字符相關(guān)的函數(shù)
? (1)? 計(jì)算變量長(zhǎng)度:
?length(變量):計(jì)算變量長(zhǎng)度状飞,對(duì)缺失值返回1毫胜;
lengthn(變量):計(jì)算變量長(zhǎng)度书斜,對(duì)缺失值返回0;
? (2)提取變量中的字符
substrn(變量酵使,起始位置荐吉,<提取長(zhǎng)度>):提取長(zhǎng)度不寫(xiě),則默認(rèn)提取到最后一個(gè)字符口渔。
?(3)查找變量中內(nèi)容
find(變量样屠,查找內(nèi)容,<"i">缺脉,<起始位置>) :必須是所有字符都完全匹配才算找到痪欲。
findc(變量,查找內(nèi)容攻礼,<"i">业踢,<起始位置>) :對(duì)于多個(gè)字符的查找,只要找到字符中任意一個(gè)就算找到礁扮。
"i"表示忽略大小知举,沒(méi)有指定起始位置就會(huì)默認(rèn)從第1個(gè)字符開(kāi)始;如果查找到了相應(yīng)的內(nèi)容太伊,就返回找到的位置雇锡,如果沒(méi)找到就返回0.
anyalpha(變量,<起始位置>):查找變量中任意字母僚焦,并返回第一字母的位置遮糖。
anydigit(變量,<起始位置>):查找變量中任意數(shù)字叠赐,并返回第一數(shù)字的位置欲账。
anyalnum(變量,<起始位置>):查找變量中任意字母或數(shù)字芭概,并返回第一字母或數(shù)字的位置赛不。
?(4) 替換變量中的字符
transwrd(變量,查找值罢洲,替換值):從變量中找到“查找值”踢故,并用“替換值”替換掉。
? (5)去除變量中的字符
compress(變量惹苗,<欲去除的字符>, <“修飾符”>):從變量中去掉“欲去除的字符”殿较。
? “修飾符”常用的有:a,?去掉變量中所有字母;d,?去掉變量中所有數(shù)字桩蓉;s,?去掉變量中所有空格淋纲;i,忽略大小院究; k,?保留“欲去除的字符”洽瞬,去掉其他字符本涕;kd,?保留所有數(shù)字,伙窃,去掉其他字符菩颖。
“變量”后第一逗號(hào)后面是“欲去除的字符”,即便不指定“欲去除的字符”为障,也需要用逗號(hào)留出它的位置晦闰,此時(shí)默認(rèn)去除的是空格。
?compress(type, ,"d")?指去除type變量中的空格和所有數(shù)字鳍怨,compress(type, "d")指去除type變量中的字符“d”鹅髓。
?(6)清點(diǎn)變量中某個(gè)字符的個(gè)數(shù)
count(變量,欲清點(diǎn)的字符京景,<"i">) :從變量中找到“欲清點(diǎn)的字符”窿冯,返回字符個(gè)數(shù),如果沒(méi)有找到确徙,就返回0醒串。
3.日期變量相關(guān)函數(shù)
(1)日期的合并與差值:
mdy(?月,日鄙皇,年):將年芜赌、月、日合并為一個(gè)日期格式的變量或值伴逸。
yrdif(開(kāi)始日期缠沈,結(jié)束日期,“計(jì)算依據(jù)”):計(jì)算兩個(gè)日期之間以年為單位的差值错蝴。
datdif(開(kāi)始日期洲愤,結(jié)束日期,“計(jì)算依據(jù)”):計(jì)算兩個(gè)日期之間以天為單位的差值顷锰。
“計(jì)算依據(jù)”:指定計(jì)算差值的依據(jù)柬赐,通常指定“actual”,也就是按當(dāng)年的實(shí)際天數(shù)計(jì)算。 yrdif(date1,date2, "actual")
(2)日期的提裙僮稀:
year(日期變量):返回日期變量或日期值的年肛宋。month(日期變量):返回日期變量或日期值的月。day(日期變量):返回日期變量或日期值的日束世。
qtr(日期變量):返回日期變量或日期值的季度酝陈。week(日期變量):返回日期變量或日期值的周數(shù)(第幾周)。?weekday(日期變量):返回日期變量或日期值的周(周幾)毁涉。
datepart(日期時(shí)間變量):返回日期時(shí)間變量的日期部分沉帮。? ?timepart(日期時(shí)間變量):返回日期時(shí)間變量的時(shí)間部分。
hour(日期時(shí)間變量或時(shí)間變量):返回日期時(shí)間變量或時(shí)間變量的小時(shí)部分。
?today()?返回當(dāng)天的日期遇西,括號(hào)內(nèi)什么都不加馅精。如果想知道年齡严嗜,可以計(jì)算today()函數(shù)返回值與你出生日期的差值粱檀。
(3)帶時(shí)間的日期變量的輸入格式:
? datetimew.? ? ?主要用于ddmmmyy? hh:mm:ss格式數(shù)據(jù)? ? ?如:26Jun09: 13:00:00
? ymddttmw.? ? ?主要用于<yy>yy-mm-dd/hh:mm:ss格式的數(shù)據(jù)(日期與時(shí)間之間的分隔符除了“/”外,還可以是“-”“.”":")
4.其他常用函數(shù)
?(1)變量的合并
cat(變量1漫玄,變量2茄蚯,.........):?連接兩個(gè)或多個(gè)變量,保留首尾空格睦优。
cats(變量1渗常,變量2,.........) : 將幾個(gè)變量合并為一個(gè)變量汗盘,刪掉首尾空格皱碘。
catx("分隔符”,變量1 隐孽,變量2癌椿,......):?將幾個(gè)變量合并為一個(gè)變量,中間用分隔符隔開(kāi)菱阵,分隔符可以是-, ~踢俄, /?等。
|| :?連接幾個(gè)變量晴及,中間有空格都办。?
(2)查找變量中的缺失值
missing(變量):判斷變量是否為缺失值,是則返回1虑稼,不是則返回0琳钉;對(duì)數(shù)值型和字符型通用。
(3)變量類(lèi)型轉(zhuǎn)換函數(shù)
input函數(shù)主要用于把字符型轉(zhuǎn)換為數(shù)值型蛛倦,put函數(shù)主要用于把數(shù)值型轉(zhuǎn)換為字符型槽卫。
input(變量,輸入格式):字符型轉(zhuǎn)換為數(shù)值型胰蝠,或?qū)⒆址娃D(zhuǎn)換為其他格式的字符型歼培。
put(變量,輸入格式):數(shù)值型轉(zhuǎn)換為字符型茸塞。
當(dāng)使用自定義格式時(shí)躲庄,如果用input函數(shù),proc format就要用invalue語(yǔ)句钾虐;如果用put函數(shù)噪窘,proc format就要用value語(yǔ)句。put函數(shù)輸出的值一定是字符型效扫,不管它看起來(lái)是數(shù)字還是其他樣子倔监。
用input和put?函數(shù)轉(zhuǎn)換已有變量的格式直砂,一定要賦值給另外一個(gè)變量,而不能是原有變量浩习。
(4)隨機(jī)函數(shù)
uniform(seed)或ranuni(seed):服從均勻分布uni(0, 1)的隨機(jī)數(shù)静暂。
normal(seed)或rannor(seed):?服從標(biāo)準(zhǔn)正態(tài)分布?N(0,1)的隨機(jī)數(shù)。
M+S*rannor(seed):服從標(biāo)準(zhǔn)正態(tài)分布?N(M,S2)的隨機(jī)數(shù)谱秽。
ranbin(seed,n,p):?服從均值為np,?方差為np(1-p)的二項(xiàng)分布的隨機(jī)數(shù)洽蛀。
ranpoi(seed,λ):?服從均數(shù)為λ的泊松分布的隨機(jī)數(shù)。