找回密码
 注册
查看: 3068|回复: 1

跟版主crackman读SAS程序(31)---如何动态的命名输出变量的名字

[复制链接]
发表于 2010-8-27 16:40:12 | 显示全部楼层 |阅读模式


title;                                                               
/*获得数据集SASHELP.CLASS中的变量名的名字以及类型,1=数值型 2=字符型*/                                                                  
proc contents data=sashelp.class out=stuff(keep=name type) noprint;  
run;                                                                 
                                                                     
data temp;                                                           
  set stuff;                                                         
  length sumname $14.;                                               
  sumname=cats(name,'_total');   /*给每一个变量名字添加后缀_total,以示区别初始变量的名字*/                                    
run;                                                                 
                                                                     
/* look at new name */                                               
                                                                     
proc print data=temp;                                                
  title 'temp';                                                      
run;                                                                 
title;                                                               
                                                                     
/* create macro var with list of numeric variable names */           
                                                                     
proc sql;                                                            
  select (sumname)                                                   
  into utname separated by ' '  /*将添加后缀和原始变量的名字一次赋值给宏变量*/                                   
  from temp                                                         
  where type = 1;                                                   
  select (name)                                                      
  into :inname separated by ' '                                      
  from temp                                                         
  where type = 1;                                                   
quit;                                                               
                                                                     
proc means data=sashelp.class;                                       
  var &inname;                                                      
  output out=mymeans sum= &outname;   /*计算每一个变量的汇总*/                              
run;                                                                                                                                    
proc print data=mymeans;                                             
  title 'mymeans';                                                   
run;                                                                 
      
值得学习:
1.CONTENTS使用,获得变量,变量的类型
2.SQL中的宏使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 23:55 , Processed in 0.020886 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表