SAS入門2回顧:
1、proc format語句:
invalue<$>格式名 變量或范圍=輸入格式;
value<$>格式名 變量或范圍=輸出格式;
2、設置變量長度:length語句(由第一個變量的值決定)
例:
data eva;
length bonus $5.;
input id g bonus$;
if g<70 then eva="合格"; elseeva="不合格";
eva=bonus;
cards;
注:“字符變量一旦產(chǎn)生,它的長度就無法改變”。
一、與數(shù)值有關的函數(shù)
mod(x,y)? ?返回x除以y的余數(shù)
abs(x)? ?返回x的絕對值
exp(x)? ? 返回x的指數(shù)值
log(x)? ? 返回x的自然對數(shù)值
log10(x)? ?返回x的以10為底的對數(shù)值
sqrt(x)? ? 返回x的平方根
ceil(x)? ? 返回≥x的最小整數(shù)
floor(x)? ? 返回≤x的最大整數(shù)
int(x)? ? 返回x的整數(shù)部分
例:
data aa;
input x;
sx=sqrt(x);? lx=log(x);
cards;
二、與統(tǒng)計有關的函數(shù)
函數(shù)(x1,x2,x3,…xn)或函數(shù)(of x1-xn)

例:

三、與字符有關的函數(shù)
1、更改字母大小寫
upcase(變量或字符串);? 作用是將所有字母改為大寫。
lowcase(變量或字符串);?? 作用是將所有字母改為小寫。
例:gender=lowcase(gender);
2、變量或字符串的連接:

例:

3、計算變量或字符串的長度:
lengthn(變量或字符串)、空值返回為0
例:
data code;
input name&:$50. gender:$;????????
len1=lengthn(name);
len2=lengthn(gender);
4、提取變量或字符串中的字符
substrn(變量,起始位置,提取長度)
例:

5、查找變量或字符串中的字符
find(變量或字符串,查找內(nèi)容,起始位置) /*忽略大小寫,所有字符完全匹配*/
findc(變量或字符串,查找內(nèi)容,起始位置)/*忽略大小寫,部分字符匹配*/
例:
type1=find(tp,"int","i");????? /*在變量tp中查找完整的int,忽略大小寫*/
type2=findc(tp,"int","i");???? /*在變量tp中查找int中任一字母,忽略大小寫*/
6、去除變量或字符串中的字符
ccompress(變量或字符串,欲去除的字符,修飾符)
四種修飾符:
a,去掉變量或字符串中的所有字母
d,去掉變量或字符串中的所有數(shù)字
s,去掉變量或字符串中的所有空格
i,忽略大小寫

7、替換變量或字符串中的字符
tranwrd(變量或字符串,查找值,替換值)
例:
input id dose&:$30.;? ?/*dose變量包含空格,因此加上&符號*/
dose1=tranwrd(dose,"口服","PO");? /*將“口服”替換為“PO”*/
cards;
8、查找缺失值
missing(變量)/*”是“--->1 ;? "不是"-->0
例:
mgender=missing(gender); /*判斷gender是否有缺失*/
mage=missing(age);?????????? /*判斷age是否有缺失 */
四、與日期有關的函數(shù)
1、日期的提取與整合

例:

2、日期間隔函數(shù)
yrdif(開始日期,結(jié)束日期,“actual")
例:life=yrdif(start,end);? ? /*計算兩個日期之間的實際年數(shù) */
五、與變量類型轉(zhuǎn)換有關的函數(shù)
input(變量,輸入格式)?/*字符型變量-->數(shù)值型*/
put(變量,輸出格式)/*數(shù)值型變量-->字符型*/
例:
input? sn:$10. d1:$10. d2:$10.;
sn2=input(sn,10.);? ?/*將sn按長度為10的格式轉(zhuǎn)為數(shù)值型 */
date1=input(d1,yymmdd8.);? ?/*將d1按yymmdd8.的格式轉(zhuǎn)為數(shù)值型 */
date2=input(d2,date9.);? ?/*將d2按date9.的格式轉(zhuǎn)為數(shù)值型*
proc? contents;???? /*顯示數(shù)據(jù)集convert中的變量類型*/
六、其它函數(shù)
以下兩個函數(shù)在處理動態(tài)數(shù)據(jù)、追蹤數(shù)據(jù)方面幾乎是必備的,如計算環(huán)比。
1、lag函數(shù)?:
返回指定變量的前一個(或前幾個)記錄;
2、dif函數(shù):?
返回當前記錄與前一個(或前幾個)記錄的差值。
