2014-11-22 542 views
0

考慮以下SAS表:計算多列百分比

data input;    
input Row$ Col1 Col2;  
datalines;    
A 10 20      
B 20 20     
C 20 20 
; 
run; 

我想計算出另外兩個欄目 - 「Col1_col_pct」和「Col2_col_pct」,這是列「Col1中」的列百分比和「col2的「將分別產生以下輸出表:

Row Col1 Col2 Col1_col_pct Col2_col_pct 
A  10  20   20.00   33.33 
B  20  20   40.00   33.33 
C  20  20   40.00   33.33 

我該怎麼做?

+0

你嘗試過這麼遠嗎?這不是一個代碼的請求的網站,但如果你有一個具體的做法問題,我敢肯定,人們可以建議。 – user667489 2014-11-22 18:10:19

回答

2

PROC SQL可以做得一樣好,儘管它仍手冊:

Proc sql; 
    create table want as 
    select *, 
    col1/sum(col1) as PCT_COL1 format=percent8.2, 
    col2/sum(col2) as PCT_COL2 format=percent8.2 
    from input; 
quit; 
2

的小結計算各列的總和,然後加入它放回原來的。然後計算你的百分比。

data input;    
input Row$ Col1 Col2;  
datalines;    
A 10 20      
B 20 20     
C 20 20 
; 
run; 

proc summary data=input; 
var col1 col2; 
output out=sum(drop=_type_ _freq_) sum= /autoname; 
run; 

data want(drop=col1_sum col2_sum); 
set input; 
if _n_ = 1 then 
    set sum; 

Col1_pct = col1/col1_sum; 
col2_pct = col2/col2_sum; 
run;