zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    AWR介绍使用
    hint使用
    部分索引类型介绍\索引重建否\索引压缩
    生成Oracle Statpack步骤
    自治事务
    append与nologging的使用
    聚簇表
    C语言杂谈——静态函数
    Qt之对话框设计——可扩展对话框
    C语言杂谈——指针篇
  • 原文地址:https://www.cnblogs.com/SSSR/p/6907859.html
Copyright © 2011-2022 走看看