SAS編程:Proc Format中NOTSORTED選項(xiàng)簡介

在SAS中,F(xiàn)ormat過程步可以使用戶為變量自定義Informat 和Format。在日常工作中,我們使用最頻繁的就是這個過程步的Value語句,為變量值設(shè)置對應(yīng)的輸出字符串。

Proc Format的搜索機(jī)制

NOTSORTED就是Value語句的一個選項(xiàng),在介紹這個選項(xiàng)之前先介紹下,PROC FORMAT搜索變量值匹配對應(yīng)格式的機(jī)制。這個搜索機(jī)制是二分法,用一個簡單的例子來說明:

value num
  1 = "Yes"
  2 = "No"
  3 = "Possibly"
;

如果在Proc Format中使用Value語句定義這個num的格式,在引用這個格式的進(jìn)行匹配的的時候,SAS會先搜索會先匹配范圍中最中間的值。在這個例中,SAS首先將變量值與中間值2="No"進(jìn)行比較;如果不匹配,然后將該值與較高范圍(3="Possibly")進(jìn)行比較;如果不匹配,再將該值與較低范圍(1="Yes")進(jìn)行比較。這就是所謂的二分法搜索機(jī)制,這個方法在大樣本搜索比較中,有更高的運(yùn)行效率。

NOTSORTED選項(xiàng)

這個選項(xiàng)會使SAS,按照定義的順序來存儲Fortmat的值或范圍。如果不指定NOTSORTED選項(xiàng),SAS會使用默認(rèn)排序進(jìn)行存儲,并使用二分搜索算法定位特定值所屬的范圍;如果指定NOTSORTED選項(xiàng),那么SAS將按照用戶定義的順序搜索每個范圍,直到找到匹配項(xiàng)。

關(guān)于SAS搜索匹配對應(yīng)值速度的快慢,這一點(diǎn)對于我們?nèi)粘>幊坦ぷ髦懈兄炔粡?qiáng)。NOTSORTED選項(xiàng)具體的使用建議,SAS官方文檔中給出了3個方向:

  • 當(dāng)知曉數(shù)據(jù)某些范圍出現(xiàn)的可能性時,我們可以先搜索可能性大的范圍來節(jié)省處理時間;
  • 在使用FMTLIB選項(xiàng)將保存好的格式輸出到SAS日志時,希望希望格式以定義的順序顯示;
  • 在PROC MEANS、PROC SUMMARY或PROC TABULATE等過程步中,使用order =DATA選項(xiàng)和PRELOADFMT選項(xiàng)來分析的類變量時,希望保留定義范圍的順序。

在這3個方向中,第3個方向使用頻率最高。

未完待續(xù)。。。

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

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

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