Economics & Deeplearning

proc freq 관측치 카운트 질문입니다! 본문

SAS/SAS 질문과 답변

proc freq 관측치 카운트 질문입니다!

이슈카 2016. 2. 20. 13:30



data a;

구조가

    a     b     c     d

1  m    y     g

2  g                  k 

3         g

4  k            d

 

이런식으로 있을 경우

 

a,b,c,d 변수 안에 g라는 관측치가 몇개인지 알고 싶습니다.

예제를 볼경우 g= 3개가 되겠죠?

 

저는 그냥 변수별로 데이터를 따로 만들어서 set으로 다 붙여가지고 proc freq문을 이용해 빈도수를 구했는데

변수별로 데이터를 나누지 않는 다른 방법은 없는 건가요?

if문을 이용하려고 했지만 예제는 관측치 종류가 m y g d k 처럼 몇개 안되지만 실제데이터는 수백개나 되거든요

 

sas 고수님들 답변좀 달아주세요^^(예문으로 코딩으로 달아주시면 감사하겠습니다 ㅋ)

================================================================================

그럼 이렇게 해보세요 all 이라는 변수를 만들고 all 변수에는 a~d 까지 모든 변수값을 다 넣어줍니다. 그리고 그것의 빈도를 세는 거죠. 돌려보니 d=1 개 g=3개 k=2개 m=1개 y=1개로 나오네요.

data a;
infile cards missover dlm=',';
input a $ b $ c $ d $;

cards;
m, y, g, ,
g, , , k 
, , g,
k , , d
run;

proc contents data=a out=a_1 noprint;
run;

%macro count;
data _null_;
set a_1 end=eof nobs=cnt;
call symput ('name'||left(_n_),name);
if eof then call symput ('cnt',cnt);
run;

data b;
set a;
%do i=1 %to &cnt;
all=&&name&i; output;
%end;
keep all;
run;


proc freq data=b;
table all;
run;

%mend;
%count;

Comments