2013-10-19 56 views
0

这里的频率是我拥有的数据:如何计算变量值在SAS

ID VALUE 
1 1 
2 -1 
3 1 
4 1 
5 1 
1 1 
2 1 
3 -1 
4 1 
5 -1 
... 

我怎样才能得到一个表是这样的:

ID value=1 value=-1 
1 2   0 
2 1   1 
3 1   1 
4 2   0 
5 1   1 

value=1意味着1多少时间出现在每个ID的值列

回答

1
data work.indata ; 
input ID VALUE; 
cards; 
1 1 
2 -1 
3 1 
4 1 
5 1 
1 1 
2 1 
3 -1 
4 1 
5 -1 
; 
run; 

/*  
proc sort data=work.indata; 
by ID; 
run; 
*/ 

proc freq noprint data=work.indata; 
tables ID * VALUE /out=WORK.COUNTS nopercent ; 
run; 


proc transpose data=WORK.COUNTS out=work.output (drop=_name_ _label_); 
id value; 
by id; 
var count; 
run; 
+0

您不需要该处理。 – mvherweg