sas调整数据集变量顺序

sas调整数据集变量顺序,更改列顺序,更改列的排列。

 Python和R在进行变量顺序修改时特别方便,但是sas的keep并不支持变量顺序修改,只能用retain来进行修改,而且修改使用的方法是将所有的变量名重新排列一遍。

如果变量特别多会非常麻烦,利用宏变量其实是程序拼接的思想,试用宏变量来实现。

以下代码实现了将num1和num2排列到一起,更加复杂的排列可以参考此方法。

varnum是变量顺序。

data a;
input name $ id sex $ num1 var1 $ num2 var2 $ var3 var4 $;
cards;
a 1 m 3 x 5 y 7 z
;
run;
proc print;
run;


proc sql;
create table vars as
select varnum,name
from dictionary.columns
where memname='A';
quit;

data vars;
set vars;
if name='num2' then varnum=4.1;
run;

proc sql ;
select name into :a_vars separated by' '
from vars
order by varnum;
quit;

%put &a_vars.;
data a;
retain &a_vars.;
set a;
run;
proc print ;
run;

这里使用了 dictionary.columns数据集,以下截图为 dictionary.columns数据集中的值,

其中有变量名和变量名的label,所以有时候我们想把变量名改成label值,也可以参考这种拼接方式。

 

获取变量名的另外一个方法:

data vars1;
set sashelp.vcolumn;
where memname='A';
keep varnum name;
run;

 

转载于:https://www.cnblogs.com/SSSR/p/6907859.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值