|
板凳

楼主 |
发表于 2012-6-4 14:50:37
|
只看该作者
Re: 如何将变量的标签作为数据的第一行?
[code:m6fpeal9]/*假设你的源表名为a*/
%macro Label2Data;
data result;
%local dsid nvar rc vname vlabel i;
%let dsid=%sysfunc(open(a));
%let nvar=%sysfunc(attrn(&dsid,nvars));
%do i=1 %to &nvar;
%let vname=%sysfunc(varname(&dsid,&i));
%let vlabel=%qsysfunc(varlabel(&dsid,&i));
length &vname $256;
%if &vlabel eq %then %do;&vname="&vname";%end;
%else %if %index(&vlabel,%str(%")) %then %do;&vname=%unquote(%str(%')&vlabel%str(%'));%end;
%else %do;&vname="&vlabel"; %end;
%end;
%let rc=%sysfunc(close(&dsid));
run;
data result;
set result a;
run;
%mend Label2Data;
%Label2Data;
[/code:m6fpeal9] |
|