楼主: 踩云飞
1314 1

dde写模板怎样把变量标签写在第一行 [推广有奖]

  • 0关注
  • 0粉丝

博士生

98%

还不是VIP/贵宾

-

威望
0
论坛币
53 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
35189 点
帖子
85
精华
0
在线时间
635 小时
注册时间
2010-3-8
最后登录
2021-9-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,把r3数据集写到excel模板中,

  1. /*取出r3所有变量名和标签并排序,赋给宏变量varname、varlabel*/
  2. proc sql noprint;
  3. select name,varnum,case when label='' then compress("'"||name||"'") else compress("'"||label||"'") end
  4.      into :varname separated by ' ' ,:varorder,:varlabel separated by ''
  5.      from dictionary.columns  
  6.          where memname='R3'
  7.         order by varnum;
  8. quit;
复制代码

  1. options noxwait noxsync;
  2. x '"D:\输出.xlsx"';   
  3. /*data _null_;   x=sleep(3);   run;*/
  4. filename result dde 'excel|输出!r1c2:r100c50' notab;  
  5. data _null_;
  6. set r3;
  7.    file result dlm='09'x;
  8.    if _n_=1 then put &varlabel.;
  9. put &varname.;
  10. run;
复制代码




if _n_=1 then put ???????; 这里,想在第一行写变量标签/变量名,怎么写?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:DDE Dictionary compress separate proc sql 标签

沙发
踩云飞 发表于 2017-2-10 10:50:41 |只看作者 |坛友微信交流群
目前摸索出一种方法,能实现上述效果,不知道还有没有更好的写法:

/*取出r3所有变量名并排序,赋给宏变量varname*/
proc sql noprint;
select name,varnum   
into :varname separated by ' ' ,:varorder     
from dictionary.columns           
where memname='R3'        
order by varnum; quit;
/*把每个变量标签赋给一个单独的变量label_i,并合并到结果数据集中*/
proc sql;        
create table label as select varnum,case when label='' then name else label end as label         
from dictionary.columns         
where memname='R3';
quit;
proc transpose data=label out=label1(drop=_name_) prefix=label_;        
id varnum;        
var label;
run;
proc sql;
create table r4 as
select * from r3 ,label1 ;
quit;
/*把最后一个变量标签赋给宏变量lastlabel*/
data _null_;
set label nobs=nobs;
call symput("lastlabel",compress('label_'||put(nobs,2.)));
run;
/*打开模板*/
options noxwait noxsync;
x '"D:\输出.xlsx"';   
/*写数据*/
filename result dde 'excel|输出!r1c2:r100c50' notab;  
data _null_;
set r4;        
file result dlm='09'x;        
if _n_=1 then put label_1-&lastlabel.;        
put &varname.;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 06:45