作者socery (keep going!)
看板Statistics
标题Re: [程式] sas数数量程式码
时间Mon Aug 6 01:46:27 2012
※ 引述《lordoffish (阿邦)》之铭言:
: [软体程式类别]:
: SAS
: [程式问题]:
: 因个人需求我需要数在多个变数内出现特定数字或字元的数量
: 例如:资料总共有5个变数 皆为数值型
: ID VAR1 VAR2 VAR3 VAR4 VAR5
: 1 5 4 5 3 1
: 2 3 2 1 2 3
: 3 4 5 2 2 1
: 请有程式码可以直接数出ID为1的资料在5个变数中,5这个数字共出现几次吗?
: [软体熟悉度]:
: 中(3个月到1年)
: -----------------------------------------------------------------------------
我也来提供一个写法, 这写法也不管你有几个变数有几笔records
假设你的dataset如下:
data a;
id=1; var1=5; var2=4; var3=5; var4=4; var5=1;output;
id=2; var1=3; var2=2; var3=1; var4=2; var5=3;output;
id=3; var1=4; var2=5; var3=2; var4=2; var5=1;output;
run;
%macro names;
%let dsid=%sysfunc(open(a,i));
%do j = 1 %to %sysfunc(attrn(&dsid,nobs));
%let rr = %sysfunc(fetch(&dsid));
%let qq=0;
%do i=2 %to %sysfunc(attrn(&dsid, nvars));
%if %sysfunc(getvarn(&dsid,&i)) = 5 %then %do;
%let qq = %eval(&qq+1);
%end;
%end;
%put ID&j=&qq;
%end;
%let dsid = %sysfunc(close(&dsid));
%mend names;
%names;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.140.157.215