| 
 | 
板凳
 
 
 楼主 |
发表于 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] |   
 
 
 
 |