SAS常用函數(shù)


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)變量類型轉(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ù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容