在SAS中唉锌,F(xiàn)ormat過程步可以使用戶為變量自定義Informat 和Format夕冲。在日常工作中锨咙,我們使用最頻繁的就是這個過程步的Value語句眉踱,為變量值設(shè)置對應(yīng)的輸出字符串挤忙。
Proc Format的搜索機制
NOTSORTED就是Value語句的一個選項,在介紹這個選項之前先介紹下谈喳,PROC FORMAT搜索變量值匹配對應(yīng)格式的機制册烈。這個搜索機制是二分法,用一個簡單的例子來說明:
value num
1 = "Yes"
2 = "No"
3 = "Possibly"
;
如果在Proc Format中使用Value語句定義這個num的格式婿禽,在引用這個格式的進行匹配的的時候赏僧,SAS會先搜索會先匹配范圍中最中間的值。在這個例中扭倾,SAS首先將變量值與中間值2="No"
進行比較淀零;如果不匹配,然后將該值與較高范圍(3="Possibly"
)進行比較膛壹;如果不匹配驾中,再將該值與較低范圍(1="Yes"
)進行比較唉堪。這就是所謂的二分法搜索機制,這個方法在大樣本搜索比較中肩民,有更高的運行效率唠亚。
NOTSORTED選項
這個選項會使SAS,按照定義的順序來存儲Fortmat的值或范圍持痰。如果不指定NOTSORTED選項趾撵,SAS會使用默認排序進行存儲,并使用二分搜索算法定位特定值所屬的范圍共啃;如果指定NOTSORTED選項占调,那么SAS將按照用戶定義的順序搜索每個范圍,直到找到匹配項移剪。
關(guān)于SAS搜索匹配對應(yīng)值速度的快慢究珊,這一點對于我們?nèi)粘>幊坦ぷ髦懈兄炔粡姟OTSORTED選項具體的使用建議纵苛,SAS官方文檔中給出了3個方向:
- 當(dāng)知曉數(shù)據(jù)某些范圍出現(xiàn)的可能性時剿涮,我們可以先搜索可能性大的范圍來節(jié)省處理時間;
- 在使用FMTLIB選項將保存好的格式輸出到SAS日志時攻人,希望希望格式以定義的順序顯示取试;
- 在PROC MEANS、PROC SUMMARY或PROC TABULATE等過程步中怀吻,使用order =DATA選項和PRELOADFMT選項來分析的類變量時瞬浓,希望保留定義范圍的順序。
在這3個方向中蓬坡,第3個方向使用頻率最高猿棉。
未完待續(xù)。屑咳。萨赁。