我無法獲得proc報告來完成我想要的操作。使用PROC報告和摘要行摔跤
我有一個表的狀態,項目,數量,狀態百分比和總數的百分比。總計按州和總計有彙總表。我的問題是這些彙總表總結了總級別的狀態總數。像這樣:
CODE:
proc report data=dataset nowd ;
columns state item count pct_state percent;
define state /order 'State';
define item/'Status';
define count/'#';
define pct_state/'% of State';
define percent/'% of Total';
break after state/ol summarize;
compute after state;
item=catt(state,' Total');
state = '';
line @1 ' ';
endcomp;
rbreak after /ol summarize;
compute after;
involved = 'Grand Total';
endcomp;
run;
使一臺這樣的:
State Item # %state %total
AL A 2 40.0% 20.0%
B 3 60.0% 30.0%
AL Total 5 100.0% 50.0%
MN A 1 20.0% 10.0%
B 1 20.0% 10.0%
C 3 60.0% 30.0%
MN Total 5 100.0% 50.0%
Grand Total 10 200.0% 100.0%
正如你可以看到,它的狀態%總200%,這是荒謬號報告。我寧願不要總結國家的價值。我知道sas網站警告說要在總結表中使用日期,因爲SAS會將它們解釋爲數值變量,從而對它們進行總結......但它不能提供一個好的解決方案。我真的不明白爲什麼BREAK
和RBREAK
語句沒有讓您指定的「VAR」選項,但現在我需要一種解決方法。
我想到的是製作一個新變量並將百分比存儲爲文本,以便在摘要中無法計算,但這是一個真正的倒退方法。
data dataset; set dataset;
state_txt = trim(left(put(pct_state,percent10.1)));
run;
proc report data=dataset nowd ;
columns state item count state_txt percent;
define state /order 'State';
define item/'Status';
define count/'#';
define state_txt/right '% of State';
define percent/'% of Total';
break after state/ol summarize;
compute after state;
item=catt(state,' Total');
state = '';
line @1 ' ';
endcomp;
rbreak after /ol summarize;
compute after;
involved = 'Grand Total';
endcomp;
run;
這消除了所有的摘要(因爲它是一個字符變量),但它似乎是在做事情時,我應該可以這樣說:rbreak after /summarize var=count percent;
,並用它做的只是一個可怕的方式。有沒有更好的方法來做到這一點?此外,我不介意它是否按照州級別進行了100%的總結......儘管它並不是一個優先事項,並且遠遠低於讓它不要在底部說200%(或者在滿的情況下美國表,5000%)。
的樣本數據:
data dataset;
length state item $50;
infile datalines delimiter=',';
input state item $ count percent pct_state;
datalines;
AL,A,8,0.0047,1.0000
DC,A,1,0.0006,0.5000
DC,B,1,0.0006,0.5000
FL,A,18,0.0107,0.7500
FL,B,2,0.0012,0.0833
FL,C,4,0.0024,0.1667
LA,A,434,0.2576,0.8314
LA,B,69,0.0409,0.1322
LA,C,19,0.0113,0.0364
MI,A,1,0.0006,1.0000
MS,A,4,0.0024,0.8000
MS,B,1,0.0006,0.2000
OK,A,2,0.0012,1.0000
PA,A,1,0.0006,1.0000
TX,A,943,0.5596,0.8435
TX,B,132,0.0783,0.1181
TX,C,43,0.0255,0.0385
VA,A,1,0.0006,1.0000
WI,B,1,0.0006,1.0000
;
你可以張貼一些樣本數據?使您的報告代碼更易於使用... –
添加樣本數據 - 百分比可能不完全相加爲100,因爲我將它們四捨五入到小數點後4位。 – orh