2014-11-22 329 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;