하나의 변수에 개체가 여러개 있을때 retain 명령문으로 평균을 구하는 방법이 뭐가 있을까요??
- dc official App
댓글 3
data test; attrib X length=$10.; attrib Y length=8.;X = "X1"; Y = 100; output;X = "X1"; Y = 50; output;X = "X1"; Y = 80; output;X = "X2"; Y = 10; output;X = "X2"; Y = 20; output;X = "X2"; Y = 40; output;X = "X3"; Y = 80; output;X = "X3"; Y = 90; output;X = "X3"; Y = 30; output;X = "X3"; Y = 70; output;run;proc sort data=test out=test2; by X;run;data test3; set test
통갤러 1(133.201)2023-11-08 21:42
아 줄바꿈이 안됬네.
X라는 변수에 X1,X2,X3가 있고 각각의 값이 들어간 Y라는 변수가 있다.
먼저 X로 proc sort한 다음에 retain X_count, Y_sum 변수 만들어서
if X.first then do;
Y_sum = Y;
X_count = 1;
end;
즉 처음의 X값이 출현할때 초기값을 정해준다음에
first가 아닐 경우 Y_sum = Y + Y_sum;
X_count = X_count + 1;해준다음에 if X.last then do; Y_sum/X_count; 하고 output;
data test; attrib X length=$10.; attrib Y length=8.;X = "X1"; Y = 100; output;X = "X1"; Y = 50; output;X = "X1"; Y = 80; output;X = "X2"; Y = 10; output;X = "X2"; Y = 20; output;X = "X2"; Y = 40; output;X = "X3"; Y = 80; output;X = "X3"; Y = 90; output;X = "X3"; Y = 30; output;X = "X3"; Y = 70; output;run;proc sort data=test out=test2; by X;run;data test3; set test
아 줄바꿈이 안됬네. X라는 변수에 X1,X2,X3가 있고 각각의 값이 들어간 Y라는 변수가 있다. 먼저 X로 proc sort한 다음에 retain X_count, Y_sum 변수 만들어서 if X.first then do; Y_sum = Y; X_count = 1; end; 즉 처음의 X값이 출현할때 초기값을 정해준다음에 first가 아닐 경우 Y_sum = Y + Y_sum; X_count = X_count + 1;해준다음에 if X.last then do; Y_sum/X_count; 하고 output;
답볌 감사드립니다 - dc App