2014-01-26 121 views
1

之前有類似的問題(how to prevent midpoints from extending),但不回答我的問題。SAS:防止擴展端點

我創建一個柱狀圖如下所示,輸出到PNG文件:

ods graphics on/imagename = "histoOne" imagefmt = png reset=index border=off width=4in; 
ods select where=(_name_ ? 'Histogr'); 
proc univariate data=myData noprint; *(WHERE=(sumStake < 250)); 
    Title1; 
    var sumStake; 
    histogram sumStake/name='histogr' vminor=4 grid lgrid=34 endpoints=0 to 250 by 20 cfill=red; 
    *Omit the inset, because the stats refer to the reduced dataset; 
    INSET n (comma11.0) mean (5.2) median (5.2) std='Std Dev'(5.2) max='Max' (5.2)/pos = ne 
    header = 'Summary Statistics' cfill = ywh; 
run; 
ods graphics off; 

我想同時顯示直方圖和彙總統計插圖。但是,數據如此偏斜,因此在X軸上顯示sumStake的最大值是沒有意義的。我想將X軸上限設置爲250.

SAS不斷擴展ENDPOINTS值。我怎樣才能抑制這一點?

我不想使用(WHERE=(sumStake < 250));過濾器,因爲插圖中的計數,平均值,中位數和最大值將基於縮減的樣本,而不是整個樣本,因此無意義。

回答

1

您可能需要以某種方式更改您的數據,或以不同的方式完成圖形。 SAS中的直方圖不允許以這種方式對數據進行大量的分析;你必須提前做。直方圖主要用於顯示數據如何丟失,因此「隱藏」某些數據影響會有點違反直覺 - 我理解您爲什麼要這麼做,但這並不完全是直方圖的主要目的,因此爲什麼功能不是SAS在那裏。

我不認爲在任何情況下PROC UNIVARIATE都會給你任何控制這個的能力,所以你可能會丟失插圖。您可以在PROC SGPLOT直方圖中顯式控制軸長度(在PROC SGPLOT中使用AXIS語句),但它們沒有相同類型的插入 - 您可能會做出某些操作,但不會那麼簡單。它也會使超大容量的容器,並且不會重新分配那些過度容量的記錄。

另一種選擇,特別是如果您要單獨製作插圖,則需要對具有「固定」(右刪失)數據的直方圖(或條形圖)進行SGPLOT並分別計算插值數據(在未經審查的數據)。