成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

sas宏程序編寫(xiě)教程 sas宏參數(shù)的兩種類型?

sas宏參數(shù)的兩種類型?SAS宏參數(shù)包含兩種類型的宏變量:自動(dòng)啟動(dòng)宏變量,由SAS系統(tǒng)提供給;用戶定義的宏變量,由用戶在程序中定義。自動(dòng)啟動(dòng)宏變量在SAS進(jìn)程結(jié)束時(shí),或程序運(yùn)行過(guò)程中由系統(tǒng)自動(dòng)創(chuàng)建角色

sas宏參數(shù)的兩種類型?

SAS宏參數(shù)包含兩種類型的宏變量:

自動(dòng)啟動(dòng)宏變量,由SAS系統(tǒng)提供給;

用戶定義的宏變量,由用戶在程序中定義。

自動(dòng)啟動(dòng)宏變量

在SAS進(jìn)程結(jié)束時(shí),或程序運(yùn)行過(guò)程中由系統(tǒng)自動(dòng)創(chuàng)建角色,在SAS再次前一直都一直保持比較有效,是全局宏變量,能在SAS任何地方被語(yǔ)句。

定義宏變量

有兩種定義宏變量:%LET和callsymput。定義宏變量并分配個(gè)值給宏變量的最簡(jiǎn)單方法是使用宏程序語(yǔ)句%LET。格式萬(wàn)分感謝:

%LET變量名變量值;

兩個(gè)語(yǔ)句是callsymput,其格式::

call!symput(變量名,變量值);

sas 小技巧?

1)讓SAS也能用中文變量名

設(shè)置成的SAS命名規(guī)則是沒(méi)能使用中文等特殊字符充當(dāng)SAS名,不過(guò)我們這個(gè)可以按照validvarnameany系統(tǒng)選項(xiàng),強(qiáng)行突破此限制,不僅如此,我們甚至還這個(gè)可以按照validmemnameextend系統(tǒng)選項(xiàng)進(jìn)階數(shù)據(jù)集名稱的限制。

optionsvalidmemnameextendvalidvarnameany

↑突破命名原則限制

技雖這般,但當(dāng)然不推薦推薦,在確實(shí)無(wú)可奈何的情況下,.例如別給了你一個(gè)幾百個(gè)中文變量名的CSV文件,是可以考慮到救救急。

(2)選擇性的遺忘再打開(kāi)SAS數(shù)據(jù)集電腦提示格式問(wèn)題

有時(shí)會(huì)出現(xiàn)別人給的SAS數(shù)據(jù)集,用libname設(shè)置好邏輯庫(kù)后,卻仍然無(wú)法顯示,總是提示解析錯(cuò)誤,此時(shí)后用nofmterr選項(xiàng)遺漏掉此類錯(cuò)誤。

optionsnofmterr

(3)一鍵備份清理過(guò)SAS的所有結(jié)果

當(dāng)SAS結(jié)果窗口結(jié)果過(guò)多,期望盡快需要清理弄干凈,從一個(gè)干凈清爽的基礎(chǔ)重新開(kāi)始時(shí),dm命令就可以不派上用場(chǎng)了。

↑Results樹(shù)形目錄下最后很多

dmodsresults#34clear#34continue

真接運(yùn)行上面的代碼,送給你一個(gè)比較清爽的世界,效果不勝感激。

↑Results樹(shù)形目錄下結(jié)果一鍵設(shè)置清理過(guò)

(4)SAS繪圖設(shè)計(jì)器幫你寫(xiě)cad作圖代碼

關(guān)於SAS繪圖,我曾寫(xiě)過(guò)系列教程,目錄如下:

但是真正不愿意去用SAS寫(xiě)代碼繪圖的人相對(duì)多。不過(guò),我們可以不試一下%sgdesign,用可拖拽的辦法繪圖,因此是可以存放背后的SASGTL代碼為日后所用。

%sgdesign

↑sgdesigner

↑圖及GTL代碼

(5)逃出「黑洞」錯(cuò)誤

還有沒(méi)有見(jiàn)到過(guò)那樣一種情況:運(yùn)行程序任何SAS代碼,SAS都沒(méi)有任何結(jié)果,也沒(méi)有錯(cuò)誤反饋處理,僅僅在log里反復(fù)重復(fù)不顯示你的代碼。

這就是有所謂的「黑洞」錯(cuò)誤,你進(jìn)入到了這樣一個(gè)「黑洞」,任何不運(yùn)行的SAS代碼都被他吸入,木有任何反饋!

神馬?你才剛遇到了過(guò),很顯然磨煉算夠啊。運(yùn)行下面一段宏代碼,再試一下后面其他SAS過(guò)程步。

%macrotest

%bringThis isa#34BalkHole#34test

%bring****%str(Gu#39sWechat)****

%mend

%test

/*以下代碼無(wú)論咋運(yùn)行是沒(méi)反應(yīng)啊*/

procprint

run

怎末破?運(yùn)行下面代碼,是可以突然冒出來(lái)!

#39)

%mend

反正,這個(gè)示例我還是比較好很簡(jiǎn)單,細(xì)細(xì)的看仔細(xì)觀察宏定義,發(fā)現(xiàn)問(wèn)題可能就本質(zhì)單引號(hào)不看操作導(dǎo)致。求完整的匹配是這樣的:

%throwing****%str(Gu#39sWechat)****%mend#39)%mend

可是,假如在緊張一點(diǎn)兒的宏,我們可能就沒(méi)那你太容易幾眼可以找到問(wèn)題所在的位置了,尚幸的是,我們是可以用一段可用代碼,多次運(yùn)行程序,等他再次出現(xiàn),就是可以逃走黑洞!這那是:

*#39*#34*)*/%mendkick

(6)SASEG/SASStudio寫(xiě)代碼

初學(xué)者,很可能我總是記不住函數(shù),記不住選項(xiàng)。沒(méi)多大關(guān)系,讓SAS自動(dòng)給我們電腦提示吧。此時(shí),也可以試下在SASEG或是SASStudio里寫(xiě)代碼。

↑SASstudio

(7)一鍵備份格式話別人凌亂不堪的代碼

遇到了別人寫(xiě)的無(wú)法直視的SAS代碼,你以為要白白忍受嗎?別了,在SAS EG里借助于ctrli一鍵設(shè)置縮起代碼,這一世齊整整,一鍵恢復(fù)治好強(qiáng)迫癥患者。