295:SAS輸出統(tǒng)計量對應(yīng)的變量名出錯

最近遇到一個問題,我覺得大家以后說不定都會遇到,所以在這分享給大家。

我們知道SAS變量名只能以下劃線或者字母開頭,然后由字母、數(shù)字、下劃線組成。
但是最近在用proc glm,把統(tǒng)計量輸出到數(shù)據(jù)集的時候,對應(yīng)的變量名卻是以數(shù)字開頭,這是在運用統(tǒng)計模型的時候,SAS它就直接輸出這樣的變量名,也沒有報錯,重新打開SAS,再跑程序也沒有問題,但是在batch ruu的時候,卻提示不能采用這樣的變量名。

下面見具體例子,以《sdtm-adam-pilot-project-master》里的ADVS數(shù)據(jù)集為例,計算兩兩比較的t值:

對應(yīng)的程序是這樣的:

image.png

對應(yīng)輸出統(tǒng)計量的數(shù)據(jù)集是這樣的:

image.png

根據(jù)前面的說明,變量名是不能以數(shù)字開頭的,但是log窗口里面也沒有任何報錯信息(先忽略那個自動畫圖的warning)

image.png

上面是在SASEG跑出來的結(jié)果,現(xiàn)在我們在SASbase里面試一下:

image.png

SAS base也沒有報錯,但是關(guān)鍵的問題來了,你肯定要對DIFF_pchg這個數(shù)據(jù)集里面的變量進行處理,好出report,但是在SASEG,你像下面這樣處理數(shù)據(jù)集不會報錯:

image.png
image.png

但是在SASbase卻會報錯

image.png

雖然說在SASEG里面你確實可以寫成‘3’n這樣的形式,但是首先這樣就違背了SAS變量名的基本原則。如果是給DM出個報告,只要能輸出正確的值就可以了,但是如果是遞交給CDE,建議還是不要這樣。
那么如何解決這個問題呢?

很簡單,一個options就可以了。
options validvarname=v7;
這個系統(tǒng)選項的作用就是在SAS運行的時候,輸出符合SAS規(guī)范的變量名

image.png

加上這個選項之后,輸出上面的pdiff_pchg數(shù)據(jù)集,那個3就會自動變成_3,這樣我們就可以在接下來的數(shù)據(jù)集對變量進行處理了。
大家還可以注意另兩個選項,其中一個“any”,我看SAShelp的解釋,就是如果你是options validvarname=any;那么我們剛才的'3'n就可以正常rename了,但是不建議大家這樣,可能出現(xiàn)一些意想不到的結(jié)果。

好了,最后我們來處理那個warning,

其實這個warning應(yīng)該是result窗口展示圖形的時候有問題,我們?yōu)榱耸∈?,可以直接在程序前面加上ods all close;這樣就不會在result 窗口輸出統(tǒng)計結(jié)果。

如果后續(xù)我們需要查看其他統(tǒng)計結(jié)果,可以采用

ods result on;

ods result off;

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

相關(guān)閱讀更多精彩內(nèi)容

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