全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1444 1
2017-02-09
如题,把r3数据集写到excel模板中,

复制代码

复制代码




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

二维码

扫码加我 拉你入群

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

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

全部回复
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;

二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群