
統(tǒng)計(jì)量值用PROC MEANS過(guò)程步很容易計(jì)算,在得到各個(gè)統(tǒng)計(jì)量數(shù)值之后,可以直接簡(jiǎn)單的用put語(yǔ)句輸出實(shí)現(xiàn)小數(shù)點(diǎn)位數(shù)的控制。當(dāng)然,這樣操作的前提是我們知曉變量值的最大的小數(shù)位數(shù),如果說(shuō)明文明中有說(shuō)明我們就可以直接采用;如果沒(méi)有說(shuō)明, 我們?nèi)绾尾僮髂? 首先, 肯定不可以直接手動(dòng)去數(shù)據(jù)集中查找, 肉眼看出最大位數(shù)后, 進(jìn)行編程。這樣的程序不夠穩(wěn)定,不能每次跑程序都用肉眼去看;其次,對(duì)于觀測(cè)數(shù)過(guò)大的數(shù)據(jù)集,單從肉眼手動(dòng)查,很不現(xiàn)實(shí)。
這里提一句程序化思維很重要,這一點(diǎn)我深有體會(huì)。在我剛開(kāi)始編程的時(shí)候,我喜歡手動(dòng)處理每一個(gè)問(wèn)題。簡(jiǎn)單來(lái)講,就是不去尋找程序化的解決方法,而是通過(guò)單獨(dú)處理孤立的問(wèn)題。就拿獲取數(shù)值最大小數(shù)位數(shù)來(lái)舉例,如果不是遇到觀測(cè)數(shù)比較大的數(shù)據(jù)集,以前的我很可能就是一條記錄一條記錄地肉眼去看,然后獲取結(jié)果?,F(xiàn)在呢?我會(huì)盡量去解決相同內(nèi)在邏輯的問(wèn)題。我會(huì)寫一個(gè)程序去尋找最大值,類似這樣:


有了這個(gè)程序,就可以避免在通過(guò)人工來(lái)查找變量的最大位數(shù),使程序更加穩(wěn)定??梢哉f(shuō)解決了這個(gè)問(wèn)題,那后面如何處理呢?這個(gè)簡(jiǎn)單的程序塊有沒(méi)有繼續(xù)改進(jìn)或增加功能呢?這只是對(duì)一整個(gè)數(shù)據(jù)分析,是否可以實(shí)現(xiàn)分組呢?顯然是可以的。



以上步驟后,就可以直接在代碼中調(diào)用宏變量值了。這里有一個(gè)注意點(diǎn),SAS中,宏變量存儲(chǔ)是以字符形式存在的,所以要在程序中先將最大位數(shù)由數(shù)值轉(zhuǎn)換為字符格式(strip(put( presion,best.))),不然會(huì)有Warning生成。這里其實(shí)還有一點(diǎn)可以引申的, 不同的統(tǒng)計(jì)量, 所規(guī)定的小數(shù)位數(shù)也是不一樣, 但都是在最大小數(shù)位數(shù)上進(jìn)行增減的, 我們可以直接將特定統(tǒng)計(jì)量的小數(shù)位數(shù)做到宏變量中, 在編程的過(guò)程中統(tǒng)一調(diào)用。